home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 April / PCO_04_97.ISO / filesbbs / os2 / vsoup127.arj / VSOUP127.ZIP / logoutisp.cmd < prev    next >
Encoding:
Text File  |  1997-02-06  |  1.7 KB  |  89 lines

  1. /*
  2.   LogoutIsp  -  rg040297
  3.  
  4.   $Id: logoutisp.cmd 1.5 1997/02/06 10:15:07 hardy Exp $
  5.  
  6.   Logoff from your ISP.
  7.  
  8.   The lines dialer/dialer2/dialerClose/comPort must be configured
  9. */
  10.  
  11. call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  12. call SysLoadFuncs
  13.  
  14. dialer            = 'c:\tcpip\bin\ppp.exe'
  15. dialer2           = 'c:\tcpip\bin\dialer.exe'
  16. dialerClose       = '@cmd /c "killname slattach ppp dialer"'
  17. comPort           = 'com3'
  18. startAfterConnect = '@echo connected'
  19.  
  20. TRACE('')
  21.  
  22. parse source . . compCmdName
  23. cmdName = filespec('name',compCmdName)
  24. tmpDir  = value('tmp',,'os2environment')
  25.  
  26. lockFile = ''
  27. IF tmpDir = '' THEN
  28.     SAY 'please define %TMP% for locking' CmdName
  29. ELSE DO
  30.     lockFile = tmpDir || '\logout.sem'
  31.     if stream( lockFile,'c','open write') \= 'READY:' then DO
  32.     SAY CmdName 'already active...'
  33.     EXIT
  34.     END
  35. END
  36.  
  37. if isActive(dialer)  |  isActive(dialer2) then do
  38.     SAY 'logging off...'
  39.    '' dialerClose
  40.  
  41.    cnt = 0
  42.    rc = SysSleep( 2 )
  43.    DO FOREVER
  44.        IF \(isActive(dialer)  |  isActive(dialer2)) THEN
  45.        LEAVE
  46.        call HangupNow
  47.        rc = SysSleep( 2 )
  48.        cnt = cnt + 2
  49.        IF cnt >= 60 THEN DO
  50.        '@start /min' dialerClose
  51.        cnt = 0
  52.        END
  53.    END
  54. END
  55. call HangupNow
  56.  
  57. IF lockFile \= '' THEN DO
  58.     rc = stream( lockFile,'c','close' )
  59.     rc = SysFileDelete( lockFile )
  60. END
  61.  
  62. EXIT
  63.  
  64.  
  65.  
  66. HangupNow:
  67. '@mode' comPort || ',dtr=on  > nul'
  68. '@mode' comPort || ',dtr=off > nul'
  69. '@mode' comPort || ',dtr=on  > nul'
  70. RETURN
  71.  
  72.  
  73.  
  74. isActive: PROCEDURE
  75. prog = ARG(1)
  76.  
  77. '@pstat /c | RXQUEUE'
  78.  
  79. prog = TRANSLATE(prog)
  80. found = 0
  81. DO ii = 1 TO queued()
  82.     PULL line
  83.     IF POS(prog,TRANSLATE(line)) \= 0 THEN do
  84.     found = 1
  85.     LEAVE
  86.     END
  87. END
  88. RETURN found
  89.