home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / ws2dnet.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  7KB  |  173 lines

  1. //************************************************************************
  2. //  Winsock V2.0  DECnet definitions        File: WS2DNET.H 
  3. //************************************************************************
  4.  
  5. #ifndef WS2DNET_H
  6. #define WS2DNET_H
  7.  
  8. #include <winsock2.h>
  9.  
  10. #pragma pack(push,ws2dnet,1)
  11.    
  12. //
  13. //  DECnet WinSock Definitions
  14. //
  15. #define DNPROTO_NSP      1  // DECnet NSP transport protocol
  16. #define DNPROTO_RAW    255 
  17.  
  18. #define DN_MAXADDL      20  // maximum DECnet address length
  19. #define DN_ADDL          2  // DECnet NSP address length
  20. #define DN_MAXOPTL      16  // Maximum DECnet optional data length
  21. #define DN_MAXOBJL      16  // Maximum DECnet object name length
  22. #define DN_MAXACCL      39  // Maximum DECnet access string length
  23. #define DN_MAXALIASL   128  // Maximum DECnet alias string length
  24. #define DN_MAXNODEL      7  // Maximum DECnet Phase IV node string length
  25.  
  26. // DECnet Extension Function Identifiers
  27. #define WS2API_DECNET_dnet_addr     1
  28. #define WS2API_DECNET_dnet_eof      2
  29. #define WS2API_DECNET_dnet_getacc   3
  30. #define WS2API_DECNET_dnet_getalias 4
  31. #define WS2API_DECNET_dnet_htoa     5
  32. #define WS2API_DECNET_dnet_ntoa     6
  33. #define WS2API_DECNET_getnodeadd    7
  34. #define WS2API_DECNET_getnodebyaddr 8
  35. #define WS2API_DECNET_getnodebyname 9
  36. #define WS2API_DECNET_getnodename   10
  37. #define WS2API_DECNET_MAX           10
  38.  
  39. //
  40. //  DECnet address structure
  41. //  
  42. typedef struct dn_naddr {
  43.     unsigned short    a_len;                // length of address  
  44.     unsigned char   a_addr[DN_MAXADDL]; // address as bytes  
  45. } DNNADDR, FAR *LPDNNADDR;
  46.  
  47. //
  48. //  DECnet socket address structure
  49. //  
  50. typedef struct sockaddr_dn {
  51.     unsigned short    sdn_family;        // AF_DECnet  
  52.     unsigned char    sdn_flags;        // flags  
  53.     unsigned char    sdn_objnum;        // object number  
  54.     unsigned short    sdn_objnamel;    // size of object name  
  55.     char sdn_objname[DN_MAXOBJL];    // object name  
  56.     struct dn_naddr  sdn_add;        // node address  
  57. } SOCKADDRDN, FAR *LPSOCKADDRDN;
  58.  
  59. #define sdn_nodeaddrl    sdn_add.a_len    // node address length  
  60. #define sdn_nodeaddr    sdn_add.a_addr     // node address  
  61.  
  62. //  Common DECnet object numbers (used in sockaddr_dn)
  63. #define DNOBJECT_FAL    17        // file access listener  
  64. #define DNOBJECT_NICE    19        // network management  
  65. #define DNOBJECT_DTERM    23        // remote terminals  
  66. #define DNOBJECT_MIRROR    25        // loopback mirror  
  67. #define DNOBJECT_EVR    26        // event receiver  
  68. #define DNOBJECT_MAIL11    27        // Mail-11 service  
  69. #define DNOBJECT_PHONE    29        // phone utility  
  70. #define DNOBJECT_CTERM    42        // command terminals  
  71. #define DNOBJECT_DTR    63        // data test receiver  
  72.  
  73. //
  74. //  DECnet node structure
  75. //
  76. typedef struct    nodeent_f {
  77.     char         FAR * n_name;   // name of node  
  78.     unsigned short    n_addrtype;    // node address type  
  79.     unsigned short    n_length;    // address length
  80.     unsigned char    FAR * n_addr;    // address  
  81.     unsigned char    FAR * n_params;    // node parameters  
  82.     unsigned char   n_reserved[16];    // Reserved
  83. } NODEENTF, FAR *LPNODEENTF;                                          
  84.  
  85. //
  86. //  DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure
  87. //  
  88. typedef struct optdata_dn {
  89.     unsigned short    opt_status;              // extended status return  
  90.     unsigned short    opt_optl;              // user data length 
  91.     unsigned char   opt_data[DN_MAXOPTL]; // user data  
  92. } OPTDATADN, FAR *LPOPTDATADN;
  93.  
  94. //
  95. //  DECnet set/get DSO_CONACCESS access (control data) structure
  96. //  
  97. typedef struct accessdata_dn {
  98.     unsigned short    acc_accl;                // account string length 
  99.     unsigned char    acc_acc[DN_MAXACCL+1];    // account string  
  100.     unsigned short    acc_passl;                // password string length  
  101.     unsigned char    acc_pass[DN_MAXACCL+1];    // password string  
  102.     unsigned short    acc_userl;                // user string length 
  103.     unsigned char    acc_user[DN_MAXACCL+1];    // user string  
  104. } ACCESSDATADN, FAR *LPACCESSDATADN;
  105.  
  106. //
  107. //  DECnet call data structure (concatenated access and optional data)
  108. //
  109. typedef struct calldata_dn { 
  110.     struct optdata_dn       optdata_dn;
  111.     struct accessdata_dn    accessdata_dn;
  112. } CALLDATADN, FAR *LPCALLDATADN;   
  113.     
  114. //
  115. //  DECnet incoming access control structure
  116. //
  117. typedef struct dnet_accent {
  118.     unsigned char dac_status;      // Reserved 
  119.     unsigned char dac_type;        // DN_NONE, etc.      
  120.     char dac_username[DN_MAXACCL+1];  
  121.     char dac_password[DN_MAXACCL+1]; 
  122. } DNETACCENT, FAR *LPDNETACCENT;
  123.  
  124. #define DN_NONE          0x00   
  125. #define DN_RO            0x01
  126. #define DN_WO            0x02
  127. #define DN_RW            0x03
  128.  
  129. // DECnet logical link information structure
  130. typedef struct linkinfo_dn {
  131.     unsigned short    idn_segsize;    /* segment size for link */
  132.     unsigned char    idn_linkstate;    /* logical link state */
  133. }LINKINFODN, FAR *LPLINKINFODN;
  134.  
  135. #define SO_LINKINFO            7        /* set/get link information */
  136. #define LL_INACTIVE            0        /* logical link inactive */
  137. #define LL_CONNECTING        1        /* logical link connecting */
  138. #define LL_RUNNING            2        /* logical link running */
  139. #define LL_DISCONNECTING    3        /* logical link disconnecting */
  140.  
  141. #pragma pack(pop,ws2dnet)
  142.  
  143. //*********************************************************************
  144. //  DECnet WinSock 2 extended function prototypes    
  145. //*********************************************************************  
  146. struct dn_naddr FAR *WSAAPI dnet_addr(const char FAR *);
  147. int WSAAPI dnet_eof(SOCKET);
  148. struct dnet_accent FAR *WSAAPI dnet_getacc(const struct dnet_accent FAR *);
  149. char FAR *WSAAPI dnet_getalias(const char FAR *);
  150. char FAR *WSAAPI dnet_htoa(const struct dn_naddr FAR *);
  151. char FAR *WSAAPI dnet_ntoa(const struct dn_naddr FAR *);
  152. struct dn_naddr FAR *WSAAPI getnodeadd(void);
  153. struct nodeent_f FAR *WSAAPI getnodebyaddr(const unsigned char FAR *addr, int, int);
  154. struct nodeent_f FAR *WSAAPI getnodebyname(const char FAR *);
  155. char FAR *WSAAPI getnodename(void);
  156.  
  157. // typedefs for C++ compatability
  158. typedef struct dn_naddr FAR * (WSAAPI * LPDNETADDR)(const char FAR *);
  159. typedef int (WSAAPI * LPDNETEOF)(SOCKET);
  160. typedef struct dnet_accent FAR * (WSAAPI * LPDNETGETACC)(const struct 
  161. dnet_accent FAR *);
  162. typedef char FAR * (WSAAPI * LPDNETGETALIAS)(const char FAR *);
  163. typedef char FAR * (WSAAPI * LPDNETHTOA)(const struct dn_naddr FAR *);
  164. typedef char FAR * (WSAAPI * LPDNETNTOA)(const struct dn_naddr FAR *);
  165. typedef struct dn_naddr FAR * (WSAAPI * LPGETNODEADD)(void);
  166. typedef struct nodeent_f FAR * (WSAAPI * LPGETNODEBYADDR)(const unsigned 
  167. char FAR *addr, int, int);
  168. typedef struct nodeent_f FAR * (WSAAPI * LPGETNODEBYNAME)(const char FAR 
  169. *);
  170. typedef char FAR * (WSAAPI * LPGETNODENAME)(void);
  171.  
  172. #endif    // WS2DNET_H  
  173.