(=X  c c FFFF000000060001001777AA00000000006C000000001001710000001-7FFF6FBE1800000480048063D200-102063D222FFFF010311600001000000390000000101514084063D181116028E0003263D141000020000015700000000151,keepWebServerUp is a tool that works around a problem some people are having with Jaguar, Mac OS X 10.2. For some reason the Web Server doesn't seem to respond after your Mac running Jaguar wakes from sleep. This tool tests for that condition and then restarts your Web Server. Thanks to Sam DeVore for the idea and numerous suggestions.00040000000A000000020153000050000000B00000002011530000600000031000000010920FFFF0900000 20 00070000003500000002010180A10 1018000080000009A0000000140,Verdana40,401C230 100009000000150000000239C17D39C17D000A000000150000000263D22263D222000B00000005000000020000C000000150000000111611742640000F0000005200000000400 10 4,77A4,00174,gess4,r4,lder4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAjY:Q3xqV c  "5 AM Y  c author Andy Fragen authorEmailafragen@mac.com descriptionX homePageUrl-http://radio.weblogs.com/0001017/publicTools/namekeepWebServerUp releaseDateversion0.95 Geneva ''?LANDmac on awake() return true 40B awakeX4FVerdana N F'LANDmac dialog.getInt ("New Run Interval?", @keepWebServerUpData.runInterval) ~Verdana wɹw'LANDmac Changes Created from installCodeFreshener script by AJF on 11/14/02; 3:54:49 PM. 9/26/02; 12:23:22 AM by AJF Add new tool tables. 1/15/02; 5:21:20 PM by DW Runs on the user's machine, when refreshing. local (adrtable = @system.temp.keepWebServerUpSnapshot) keepWebServerUpData = adrtable^.data keepWebServerUpInfo = adrtable^.info keepWebServerUpRpcHandlers = adrtable^.rpchandlers keepWebServerUpSuite = adrtable^.suite keepWebServerUpThread = adrtable^.thread filemenu.savemyroot (@keepWebServerUpSuite) local (x=string.parseAddress (@keepWebServerUpSuite), f = x[1]) frontier.tools.install (f) dialog.notify ("Thanks for updating to version " + keepWebServerUpInfo.version + " of keepWebServerUp.root Tool!") N Verdana w˹w'LANDmac Changes Created from installCodeFreshener script by AJF on 11/14/02; 3:54:53 PM. 1/15/02; 5:18:06 PM by DW This is the Refresh menu command. local (url = "http://radio.weblogs.com/0001017/publicTools/keepWebServerUp/codeFreshener.fttb") local (urllist = string.urlsplit (url)) local (s = tcp.httpclient (server:urllist [2], path:urllist [3])) local (f=frontier.pathstring + "codeFreshener.fttb") file.writewholefile (f, s) fatpages.importfatfile (f) thread.callscript (@system.temp.keepWebServerUpSnapshot.loader, {})  {Verdana w͹w'LANDmac if dialog.confirm ("Get the newest code for keepWebServerUp.root Tool?") keepWebServerUpSuite.codeFreshener.refreshCode() o+!Verdana wϹwLANDmac Changes Created from installCodeFreshener script by AJF on 11/14/02; 3:54:56 PM. 1/15/02; 5:08:55 PM by DW Created. I run this on my machine to create a package for refreshCode to load. Talk about a Mobius Strip. It's really simple code, but it's fun to walk your mind through it. local (oldkeepWebServerUpData) bundle //get keepWebServerUpData ready for ship oldkeepWebServerUpData = keepWebServerUpData new (tabletype, @keepWebServerUpData) keepWebServerUpThread.enabled = true keepWebServerUpThread.ct = 0 keepWebServerUpInfo.releaseDate = clock.now() local (adrtable = @system.temp.keepWebServerUpSnapshot) new (tabletype, adrtable) adrtable^.data = keepWebServerUpData adrtable^.info = keepWebServerUpInfo adrtable^.rpchandlers = keepWebServerUpRpcHandlers adrtable^.suite = keepWebServerUpSuite adrtable^.thread = keepWebServerUpThread adrtable^.loader = keepWebServerUpSuite.codeFreshener.loadNewCode local (f = radio.file.getSubFolder ("publicTools/keepWebServerUp") + "codeFreshener.fttb") file.surefilepath (f) export.sendobject (adrtable, f) f = radio.file.getSubFolder ("publicTools/keepWebServerUp") + "keepWebServerUp.root" target.set (this) fileMenu.saveCopy (f) keepWebServerUpData = oldkeepWebServerUpData dialog.alert (file.filefrompath (f) + " is " + string.megabytestring (file.size (f))) o8wɹw  $0 @L [ loadNewCode e refreshCode <refreshCodeMenureleaseNewCode%5Verdana ?z p8?LANDmac if not defined (keepWebServerUpData.runInterval) keepWebServerUpData.runInterval = 30 if keepWebServerUpData.runInterval < 10 keepWebServerUpData.runInterval = 10 5,T`Geneva s}cLANDmac local (starticks = clock.ticks()) local (flAwake = false) try {flAwake = ["xmlrpc://127.0.0.1:5335/rpc2"].keepWebServerUp.awake ()} if not defined (system.temp.radio.flStarted) continue else if not system.temp.radio.flStarted //sd: wait for radio to finish starting so that webserver should be running if not flAwake for adrTable in @user.inetd.config try {inetd.stopOne (adrTable)} adrTable^.startup = true inetd.startOne (adrTable) if not tcp.isOffline() radio.log.add ("Web Server", "Restart Web Server on port:" +adrTable^.port + ". The Daemon was not running." , starticks) , DVerdana <٬3'LANDmac keepWebServerUpThread.enabled = true keepWebServerUpSuite.keepUp () *Verdana T ׺ 'LANDmac keepWebServerUpSuite.changeRunInterval () ]Verdana wӹw'LANDmac if dialog.confirm ("Get the newest code?"){keepWebServerUpSuite.codeFreshener.refreshCode()} 6JVerdana ׺ @'LANDmac KeepWebServerUp Keep Web Server Up Change Run Interval Refresh Code...   Tp;6dVerdana 4pBN  ,8 =I P\ achangeRunIntervalX codeFreshenerXinitXSkeepUpXmenuX ?*/Verdana 1A#!(LANDmac This script runs in its own thread. loop //loop until the application quits Add your code here. thread.callScript (@keepWebServerUpSuite.keepUp, {}) keepWebServerUpThread.ct++ keepWebServerUpSuite.init () thread.sleepFor (keepWebServerUpData.runInterval) //sleep for user defined number of seconds P. c ctenabledscriptX!~VVerdana 2+nB c  4@ [g | keepWebServerUpDataXkeepWebServerUpInfokeepWebServerUpRpcHandlersUkeepWebServerUpSuite keepWebServerUpThread#[V Lucida Grande2gVerdana  c'LANDmac keepWebServerUpData keepWebServerUpInfo keepWebServerUpRpcHandlers keepWebServerUpSuite codeFreshener loadNewCode refreshCode refreshCodeMenu releaseNewCode init keepUp menu changeRunInterval keepWebServerUpThread ct enabled script G'GXG'GXG'GXG'GXG'GG'G(G'G(G'G(G'G(G'GG'GG'GG'GG'GXG'G)$G'G)$G'G)$$@x Lucida Grande Lucida Grande JGeneva ^} Lucida Grande mn Lucida Grande Lucida Grande