Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef WS2DNET_H
      7 #define WS2DNET_H
      8 
      9 #include <winsock2.h>
     10 
     11 #pragma pack(push,ws2dnet,1)
     12 
     13 #define DNPROTO_NSP 1
     14 #define DNPROTO_RAW 255
     15 
     16 #define DN_MAXADDL 20
     17 #define DN_ADDL 2
     18 #define DN_MAXOPTL 16
     19 #define DN_MAXOBJL 16
     20 #define DN_MAXACCL 39
     21 #define DN_MAXALIASL 128
     22 #define DN_MAXNODEL 7
     23 
     24 #define WS2API_DECNET_dnet_addr 1
     25 #define WS2API_DECNET_dnet_eof 2
     26 #define WS2API_DECNET_dnet_getacc 3
     27 #define WS2API_DECNET_dnet_getalias 4
     28 #define WS2API_DECNET_dnet_htoa 5
     29 #define WS2API_DECNET_dnet_ntoa 6
     30 #define WS2API_DECNET_getnodeadd 7
     31 #define WS2API_DECNET_getnodebyaddr 8
     32 #define WS2API_DECNET_getnodebyname 9
     33 #define WS2API_DECNET_getnodename 10
     34 #define WS2API_DECNET_MAX 10
     35 
     36 typedef struct dn_naddr {
     37   unsigned short a_len;
     38   unsigned char a_addr[DN_MAXADDL];
     39 } DNNADDR,*LPDNNADDR;
     40 
     41 typedef struct sockaddr_dn {
     42   unsigned short sdn_family;
     43   unsigned char sdn_flags;
     44   unsigned char sdn_objnum;
     45   unsigned short sdn_objnamel;
     46   char sdn_objname[DN_MAXOBJL];
     47   struct dn_naddr sdn_add;
     48 } SOCKADDRDN,*LPSOCKADDRDN;
     49 
     50 #define sdn_nodeaddrl sdn_add.a_len
     51 #define sdn_nodeaddr sdn_add.a_addr
     52 
     53 #define DNOBJECT_FAL 17
     54 #define DNOBJECT_NICE 19
     55 #define DNOBJECT_DTERM 23
     56 #define DNOBJECT_MIRROR 25
     57 #define DNOBJECT_EVR 26
     58 #define DNOBJECT_MAIL11 27
     59 #define DNOBJECT_PHONE 29
     60 #define DNOBJECT_CTERM 42
     61 #define DNOBJECT_DTR 63
     62 
     63 typedef struct nodeent_f {
     64   char *n_name;
     65   unsigned short n_addrtype;
     66   unsigned short n_length;
     67   unsigned char *n_addr;
     68   unsigned char *n_params;
     69   unsigned char n_reserved[16];
     70 } NODEENTF,*LPNODEENTF;
     71 
     72 typedef struct optdata_dn {
     73   unsigned short opt_status;
     74   unsigned short opt_optl;
     75   unsigned char opt_data[DN_MAXOPTL];
     76 } OPTDATADN,*LPOPTDATADN;
     77 
     78 typedef struct accessdata_dn {
     79   unsigned short acc_accl;
     80   unsigned char acc_acc[DN_MAXACCL+1];
     81   unsigned short acc_passl;
     82   unsigned char acc_pass[DN_MAXACCL+1];
     83   unsigned short acc_userl;
     84   unsigned char acc_user[DN_MAXACCL+1];
     85 } ACCESSDATADN,*LPACCESSDATADN;
     86 
     87 typedef struct calldata_dn {
     88   struct optdata_dn optdata_dn;
     89   struct accessdata_dn accessdata_dn;
     90 } CALLDATADN,*LPCALLDATADN;
     91 
     92 typedef struct dnet_accent {
     93   unsigned char dac_status;
     94   unsigned char dac_type;
     95   char dac_username[DN_MAXACCL+1];
     96   char dac_password[DN_MAXACCL+1];
     97 } DNETACCENT,*LPDNETACCENT;
     98 
     99 #define DN_NONE 0x00
    100 #define DN_RO 0x01
    101 #define DN_WO 0x02
    102 #define DN_RW 0x03
    103 
    104 typedef struct linkinfo_dn {
    105   unsigned short idn_segsize;
    106   unsigned char idn_linkstate;
    107 } LINKINFODN,*LPLINKINFODN;
    108 
    109 #define SO_LINKINFO 7
    110 #define LL_INACTIVE 0
    111 #define LL_CONNECTING 1
    112 #define LL_RUNNING 2
    113 #define LL_DISCONNECTING 3
    114 
    115 #pragma pack(pop,ws2dnet)
    116 
    117 struct dn_naddr *WSAAPI dnet_addr(const char *);
    118 int WSAAPI dnet_eof(SOCKET);
    119 struct dnet_accent *WSAAPI dnet_getacc(const struct dnet_accent *);
    120 char *WSAAPI dnet_getalias(const char *);
    121 char *WSAAPI dnet_htoa(const struct dn_naddr *);
    122 char *WSAAPI dnet_ntoa(const struct dn_naddr *);
    123 struct dn_naddr *WSAAPI getnodeadd(void);
    124 struct nodeent_f *WSAAPI getnodebyaddr(const unsigned char *addr,int,int);
    125 struct nodeent_f *WSAAPI getnodebyname(const char *);
    126 char *WSAAPI getnodename(void);
    127 
    128 typedef struct dn_naddr *(WSAAPI *LPDNETADDR)(const char *);
    129 typedef int (WSAAPI *LPDNETEOF)(SOCKET);
    130 typedef struct dnet_accent *(WSAAPI *LPDNETGETACC)(const struct dnet_accent *);
    131 typedef char *(WSAAPI *LPDNETGETALIAS)(const char *);
    132 typedef char *(WSAAPI *LPDNETHTOA)(const struct dn_naddr *);
    133 typedef char *(WSAAPI *LPDNETNTOA)(const struct dn_naddr *);
    134 typedef struct dn_naddr *(WSAAPI *LPGETNODEADD)(void);
    135 typedef struct nodeent_f *(WSAAPI *LPGETNODEBYADDR)(const unsigned char *addr,int,int);
    136 typedef struct nodeent_f *(WSAAPI *LPGETNODEBYNAME)(const char *);
    137 typedef char *(WSAAPI *LPGETNODENAME)(void);
    138 #endif
    139