home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / isdnpm29.zip / login1.fnc < prev    next >
Text File  |  1998-01-11  |  4KB  |  119 lines

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