Overview
Comment: | Updated to avoid hammering remote servers if cache cannot be updated for some reason other than downloading failed |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
df8e635cacec68652b909590743e1d61 |
User & Date: | rkeene on 2015-12-08 14:13:58 |
Other Links: | manifest | tags |
Context
2016-07-10
| ||
19:05 | Updated to finalize a thread that terminated even if there are no current Tcl interpreters associated with it check-in: b03c6db3d1 user: rkeene tags: trunk | |
2015-12-08
| ||
14:13 | Updated to avoid hammering remote servers if cache cannot be updated for some reason other than downloading failed check-in: df8e635cac user: rkeene tags: trunk | |
2015-11-19
| ||
16:01 | Updated initializer to be explicitly unsigned check-in: f905360d64 user: rkeene tags: trunk | |
Changes
Modified appfsd.tcl from [9efbb291d1] to [865f14848a].
︙ | ︙ | |||
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 | return -code error "Unable to fetch (file does not exist: $file)" } return $file } proc getindex {hostname} { set now [clock seconds] set lastUpdates [db eval {SELECT lastUpdate, ttl FROM sites WHERE hostname = $hostname LIMIT 1;}] if {[llength $lastUpdates] == 0} { set lastUpdate 0 set ttl 0 } else { set lastUpdate [lindex $lastUpdates 0] set ttl [lindex $lastUpdates 1] } if {$now < ($lastUpdate + $ttl)} { return COMPLETE } | > > > > < < < < | | | > | 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 | return -code error "Unable to fetch (file does not exist: $file)" } return $file } proc getindex {hostname} { if {[string match "*\[/~\]*" $hostname]} { return -code error "Invalid hostname" } set now [clock seconds] set lastUpdates [db eval {SELECT lastUpdate, ttl FROM sites WHERE hostname = $hostname LIMIT 1;}] if {[llength $lastUpdates] == 0} { set lastUpdate 0 set ttl 0 } else { set lastUpdate [lindex $lastUpdates 0] set ttl [lindex $lastUpdates 1] } if {$now < ($lastUpdate + $ttl)} { return COMPLETE } set url "http://$hostname/appfs/index" catch { set token [::http::geturl $url] if {[::http::ncode $token] == "200"} { set indexhash_data [::http::data $token] } ::http::reset $token ::http::cleanup $token } # Note that we attempted to fetch this index and do not try # again for a while db eval {INSERT OR REPLACE INTO sites (hostname, lastUpdate, ttl) VALUES ($hostname, $now, $::appfs::nttl);} if {![info exists indexhash_data]} { return -code error "Unable to fetch $url" } set indexhash_data [string trim $indexhash_data "\r\n"] set indexhash_data [split $indexhash_data ","] set indexhash [lindex $indexhash_data 0] set indexhashmethod [lindex $indexhash_data 1] |
︙ | ︙ |