home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / comms / other / rxsocket / examples / hserv / main / authfun.rexx next >
OS/2 REXX Batch file  |  1998-05-09  |  747b  |  39 lines

  1. /* */
  2.  
  3. parse arg ha, lp, sp
  4.  
  5. say ha lp sp
  6.  
  7. sin.addrFamily = "INET"
  8. sin.addrAddr = ha
  9. if GetServByName("SE","auth","tcp")<0 then sin.addrPort = se.servPort
  10. else sin.addrPort = 113
  11.  
  12. say sin.addrFamily sin.addrAddr sin.addrPort
  13.  
  14. sock = socket("INET","STREAM",0)
  15. if sock<0 then exit "-ERR" errno()
  16.  
  17. if connect(sock,"SIN")<0 then exit "-ERR" errno()
  18.  
  19. request = sp "," lp || d2c(13) || d2c(10)
  20. res = send(sock,request)
  21. if res ~= length(request) then exit "-ERR" errno()
  22.  
  23. ans=""
  24. len = recv(sock,"BUF",1)
  25. do while len>0
  26.     ans = ans || buf
  27.     len = recv(sock,"BUF",256)
  28. end
  29. if len<0 then exit "-ERR" errno()
  30.  
  31. call CloseSocket(sock)
  32.  
  33. if index(ans,"ERROR")~=0 then do
  34.     parse var ans "ERROR:" rest
  35.     exit "+OK unknown"
  36. end
  37.  
  38. exit "+OK " || left(ans,length(ans)-1)
  39.