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