diff --git a/win32/errno-win32-extend.h b/win32/errno-win32-extend.h new file mode 100755 index 0000000..435abba --- /dev/null +++ b/win32/errno-win32-extend.h @@ -0,0 +1,5 @@ +#undef EINPROGRESS +#undef EALREADY + +#define EINPROGRESS WSAEINPROGRESS +#define EALREADY WSAEALREADY diff --git a/win32/structs-for-win32.h b/win32/structs-for-win32.h new file mode 100755 index 0000000..97cd917 --- /dev/null +++ b/win32/structs-for-win32.h @@ -0,0 +1,88 @@ + +//structs-for-win32.h + +#define IFNAMSIZ 16 +//#define SIZE_INTERFACES 100 + + +struct ifmap + { + unsigned long int mem_start; + unsigned long int mem_end; + unsigned short int base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; + /* 3 bytes spare */ + }; + +struct ifreq + { + char ifr_name[IFNAMSIZ]; /* Interface name */ + union { + struct sockaddr ifr_addr; + struct sockaddr ifr_dstaddr; + struct sockaddr ifr_broadaddr; + struct sockaddr ifr_netmask; + struct sockaddr ifr_hwaddr; + short ifr_flags; + int ifr_ifindex; + int ifr_metric; + int ifr_mtu; + struct ifmap ifr_map; + char ifr_slave[IFNAMSIZ]; + char ifr_newname[IFNAMSIZ]; + char * ifr_data; + }; + }; + +struct ifconf + { + int ifc_len; /* size of buffer */ + union { + char * ifc_buf; /* buffer address */ + struct ifreq * ifc_req; /* array of structures */ + }; + }; +#define SIOCGIFCONF SIO_GET_INTERFACE_LIST +#define SIOCGIFFLAGS SIO_GET_INTERFACE_LIST + +typedef unsigned short int uint16_t; +typedef unsigned int uint32_t; +typedef unsigned short u_int16_t; +typedef unsigned int u_int32_t; + + +// arpa/nameser.h +#define QFIXEDSZ 4 /* #/bytes of fixed data in query */ +#define C_IN 1 /* the arpa internet */ +#define T_SRV 33 /* Server selection */ + + +typedef struct { + unsigned id :16; /* query identification number */ + + /* fields in third byte */ + unsigned rd :1; /* recursion desired */ + unsigned tc :1; /* truncated message */ + unsigned aa :1; /* authoritative answer */ + unsigned opcode :4; /* purpose of message */ + unsigned qr :1; /* response flag */ + + /* fields in fourth byte */ + unsigned rcode :4; /* response code */ + unsigned cd: 1; /* checking disabled by resolver */ + unsigned ad: 1; /* authentic data from named */ + unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */ + unsigned ra :1; /* recursion available */ + + /* remaining bytes */ + unsigned qdcount :16; /* number of question entries */ + unsigned ancount :16; /* number of answer entries */ + unsigned nscount :16; /* number of authority entries */ + unsigned arcount :16; /* number of resource entries */ +} HEADER; + +// Bad hack: can't find these on windows +#define EAI_OVERFLOW -1 +#define EAI_SYSTEM -2