home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / ws2dnet.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  7KB  |  175 lines

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