home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / src / smtp / tcp.5.2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-03-31  |  1.0 KB  |  53 lines

  1. #include <fcntl.h>
  2. #include "util.h"
  3. #include "mmdf.h"
  4. #include "netlib.h"
  5. #include "net/con.h"
  6.  
  7. #define NETFILE "/dev/net"
  8.  
  9. /* open a tcp connect.  based on code from bbn */
  10.  
  11.  
  12. tc_uicp (addr, socket, timeout, fds)
  13.     long addr;
  14.     long socket;            /* absolute socket number       */
  15.     int timeout;            /* time to wait for open        */
  16.     Pip *fds;
  17. {
  18.     struct con openparam, netcon;
  19.     int sock;
  20.     register int fd;
  21.  
  22.     sock = socket;
  23.  
  24.     openparam.c_fcon = addr;
  25.     mkanyhost(openparam.c_lcon);
  26.  
  27.     openparam.c_lport = 0;
  28.     openparam.c_fport = sock;
  29.     openparam.c_timeo = timeout;
  30.     openparam.c_mode = (CONACT | CONTCP);
  31.     openparam.c_sbufs =
  32.     openparam.c_rbufs = 1;
  33.     openparam.c_proto = 0;
  34.  
  35.     netcon.c_mode = (CONTCP | CONOBLOK);
  36.     if ((fd = open (NETFILE, O_RDWR)) < 0)
  37.     return (RP_LIO);
  38.  
  39.     if (ioctl(fd, NETOPEN, &netcon) <0) {
  40.     close(fd);
  41.     return(RP_DHST);
  42.     }
  43.  
  44.     if (ioctl (fd, NETSETE, NULL) < 0) {
  45.     close(fd);
  46.     return (RP_LIO);
  47.     }
  48.  
  49.     fds -> pip.prd = fd;
  50.     fds -> pip.pwrt = fd;
  51.     return (RP_OK);
  52. }
  53.