home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / mint / netlib / include / socket.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-27  |  2.0 KB  |  79 lines

  1. /*
  2.  *    Definitions for dealing with sockets, mostly system independend.
  3.  *    The system dependend part is found in mintsock.h
  4.  *
  5.  *    09/25/93, kay roemer.
  6.  */
  7.  
  8. #ifndef _SOCKET_H
  9. #define _SOCKET_H
  10.  
  11. #include "iov.h"
  12.  
  13. /* socket types */
  14. enum so_type {
  15.     SOCK_STREAM = 1,
  16.     SOCK_DGRAM,
  17.     SOCK_RAW,
  18.     SOCK_RDM,
  19.     SOCK_SEQPACKET
  20. };
  21.  
  22. /* protocol families */
  23. #define    PF_UNSPEC    0
  24. #define    PF_UNIX        1
  25. #define    PF_INET        2
  26.  
  27. /* address families, same as above */
  28. #define AF_UNSPEC    PF_UNSPEC
  29. #define AF_UNIX        PF_UNIX
  30. #define AF_INET        PF_INET
  31. #define AF_LINK        200
  32.  
  33. /* flags for send and recv */
  34. #define MSG_OOB        1
  35. #define MSG_PEEK    2
  36. #define MSG_DONTROUTE    4
  37.  
  38. /* [s|g]etsockopt() levels */
  39. #define SOL_SOCKET    0xffff
  40.  
  41. /* [s|g]etsockopt() options */
  42. #define SO_DEBUG    1    /* debugging on/off */
  43. #define SO_REUSEADDR    2    /* duplicate socket addesses on/off */
  44. #define SO_TYPE        3    /* get socket type */
  45. #define SO_ERROR    4    /* reset socket error status */
  46. #define SO_DONTROUTE    5    /* routing of outgoing messages on/off */
  47. #define SO_BROADCAST    6    /* may datagramms be broadcast */
  48. #define SO_SNDBUF    7    /* set/get size of output buffer */
  49. #define SO_RCVBUF    8    /* set/get size of input buffer */
  50. #define SO_KEEPALIVE    9    /* periodically connection checking on/off*/
  51. #define SO_OOBINLINE    10    /* place oob-data in input queue on/off */
  52. #define SO_LINGER    11    /* what to do when closing a socket */
  53. #define SO_CHKSUM    40    /* switch checksum generation on/off */
  54. #define SO_DROPCONN    41    /* drop incoming conn. when accept() fails */
  55.  
  56. /* structure to pass for SO_LINGER */
  57. struct linger {
  58.     long    l_onoff;    /* when != 0, close() blocks */
  59.     long    l_linger;    /* timeout in seconds */
  60. };
  61.  
  62. /* generic socket address */
  63. struct sockaddr {
  64.     short    sa_family;
  65.     char    sa_data[14];
  66. };
  67.  
  68. /* structure used with sendmsg() and recvmsg() */
  69. struct msghdr {
  70.     struct sockaddr    *msg_name;
  71.     long        msg_namelen;
  72.     struct iovec    *msg_iov;
  73.     long        msg_iovlen;
  74.     void        *msg_accrights;
  75.     long        msg_accrightslen;
  76. };
  77.  
  78. #endif /* _SOCKET_H */
  79.