How to deal with unplug from the LAN

Web Admin Himalayan Academy katir at hindu.org
Wed May 26 13:16:02 EDT 2010


With a tip from Andre, we solved this problem... it's really pretty 
neat. Perhaps someone else may need this.

Mac Only

This queries the hardware-network interface and give you and instant 
response... if the users just unplugs from the network or turns of her 
airport, with a remote volume mounted... you want to be sure you don't 
try to interact with the server...otherwise you will get a 2 minute time 
out waiting before the system gives back the CPU to RunRev....

Do this first: (disclaimer, any code I offer probably could be highly 
optimized)

function connectionStatus

    put shell("ifconfig") into tStatus

    # Parse for ethernet status
    put lineOffset ("en0:",tStatus) into tTarget
    put line ((lineOffset ("Status:",tStatus,tTarget))+tTarget) of 
tStatus into tEN0status
    set the itemdel to ":"
    if (item -1 of tEN0status) = " active" then
       return "true"
    else
       return "false"
    end if

    # Check Airport-Wireless status
    put lineOffset ("en1:",tStatus) into tTarget
    put line ((lineOffset ("Status",tStatus,tTarget))+tTarget) of 
tStatus into tEN1status
    set the itemdel to ":"
    if item -1of tEN1status = " active" then
       return "true"
    end if
end connectionstatus

Then all other places you need to interact with the server:

command CheckVarunaIsMounted
    if connectionStatus() <> "True" then
       answer "You appear to be offline line. Connect to the network by 
ethernet or airport. Then try again." with "OK"
       exit to top
    else
       put URL 
"file:/Volumes/Varuna/WWW/*Sites/varuna.hindu.org/ping.txt" into 
gControlFile
       if gControlFile = "true" then
          set the icon of btn "Connected" to 1097
          put "true" into gVarunaMounted
          set the uVarunaMounted of this stack to "true"
       else
          put "false" into gVarunaMounted
          set the uVarunaMounted of this stack to "False"
          set the icon of btn "Connected" to 1098
          answer "Varuna is not mounted. Shall I mount it for you?" with 
"OK"
          mountVaruna
          exit to top
       end if
    end if

end CheckVarunaIsMounted

command Checkin pFileName

    CheckVarunaIsMounted

    if the uVarunaMounted of this stack <> "true" then
       answer  "Sorry, Varuna is not mounted, you cannot check in 
files." with "OK"
       exit to top
    end if

    # increment revision number; change co to CI; retain user initials; 
rename local file
    put pFileName into tNewFileName

etc...

end checkIn

Then I always run this every time I set the default folder to the 
server, when done getting the file listing:

command unTetherStackFromServer
    set the defaultFolder to ($Home&"/Documents/")
end unTetherStackFromServer

and then the user gets no msg saying he can't unmount the volume because 
it is in use by RunRev.

HTH somebody...


Sivakatirswami






More information about the use-livecode mailing list