home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 January / PCO0197.ISO / filesbbs / os2 / isdnpm27.arj / LOGIN1.FNC < prev    next >
Encoding:
Text File  |  1996-06-02  |  3.6 KB  |  118 lines

  1. /***************************************************************************/
  2. call RxFuncAdd 'SysSleep','RexxUtil','SysSleep'
  3.  
  4. ARG Channel LocalIp HostIp Netmask DefaultIp
  5.  
  6. cr   = '0d'x
  7. crlf = '0d0a'x
  8. remain_buffer  = ''
  9. waitfor_buffer = ''
  10.  
  11. say 'Line       ' Channel
  12. say 'LocalIp    ' LocalIp
  13. say 'HostIp     ' HostIp
  14. say 'Netmask    ' Netmask
  15. say 'DefaultIp  ' HostIp
  16.  
  17. password = READPASSWORD(Channel)
  18.  
  19. call waitfor 'e.V.' , 100
  20. rc = ISDNWRITE(Channel,cr)
  21. call waitfor 'inga login:' , 20
  22. call SysSleep 1
  23.  
  24.  
  25. rc = ISDNWRITE(Channel,'username'||cr)
  26. call waitfor 'word:' , 20
  27. call SysSleep 1
  28. rc = ISDNWRITE(Channel,password||cr)
  29.  
  30. call SysSleep 1
  31.  
  32. /* must not be changed ! */
  33.  
  34. say 'REXX DATAMODE'
  35. rc = ISDNDATAMODE(Channel)
  36. say 'REXX DATAMODE END '
  37.  
  38.  
  39. exit 0
  40.  
  41. /*----------------------------------------------------------------------*/
  42. /*  waitfor( waitforstring , [timeout] )                                */
  43. /*......................................................................*/
  44. /*                                                                      */
  45. /*                                                                      */
  46. /*                                                                      */
  47. /*----------------------------------------------------------------------*/
  48.  
  49. waitfor:
  50.  
  51.     parse arg waitstring , timeout
  52.     if timeout = '' then
  53.         timeout = 20        /* wait 20 sec */
  54.  
  55.     timeout = timeout * 10 ;    /* ISDNREAD returns after 1/10 Sek */
  56.  
  57.     waitfor_buffer = '' ; done = -1 ; curpos = 1
  58.     do while (( done = -1) & (timeout > 0))
  59.         if (remain_buffer \= '') then do
  60.             line = remain_buffer
  61.             remain_buffer = ''
  62.         end
  63.         else do
  64.             line = ISDNREAD(Channel)
  65.             if Substr(line,1,1)<>'00'x then do
  66.               say 'ISDNREAD-Fehler'
  67.               signal failure
  68.             end
  69.             line=Substr(line,2)
  70.         end
  71.         waitfor_buffer = waitfor_buffer || line
  72.         index = pos(waitstring,waitfor_buffer)
  73.         if (index > 0 ) then do
  74.             remain_buffer = substr(waitfor_buffer,index+length(waitstring))
  75.             waitfor_buffer = delstr(waitfor_buffer,index+length(waitstring))
  76.             done = 0
  77.         end
  78.         call charout,substr(waitfor_buffer,curpos)
  79.         curpos = length(waitfor_buffer)+1
  80.         timeout = timeout - 1
  81.         call SysSleep 1
  82.     end
  83.     if (timeout = 0 ) then do
  84.         say 'WAITFOR : timed out '
  85.         done = 1
  86.     end
  87.     RC = done
  88. return RC
  89.  
  90. /*----------------------------------------------------------------------*/
  91. /*  flush_receive()                                                     */
  92. /*......................................................................*/
  93. /*                                                                      */
  94. /*                                                                      */
  95. /*                                                                      */
  96. /*----------------------------------------------------------------------*/
  97. flush_receive:
  98.  
  99.     parse arg echo
  100.     /* if echoing the flush - take care of waitfor remainig buffer */
  101.     if( echo \= '' ) && (length(remain_buffer) > 0 ) then do
  102.         call charout, remain_buffer
  103.     end
  104.     cx = 20
  105.     line = ''
  106.     do while (line \= '') & (cx > 0 )
  107.         line = ISDNREAD(Channel)
  108.         if Substr(line,1,1)<>'00'x then do
  109.           say 'ISDNREAD-Fehler'
  110.           signal failure
  111.         end
  112.         line=Substr(line,2)
  113.         if echo \= '' then
  114.             call charout,line
  115.         cx = cx - 1
  116.     end
  117.     return
  118.