| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #ifndef ADDRINFO_H |
| #define ADDRINFO_H |
| |
| |
| |
| |
| #ifndef EAI_FAIL |
| #define EAI_BADFLAGS (-1) |
| #define EAI_NONAME (-2) |
| #define EAI_AGAIN (-3) |
| #define EAI_FAIL (-4) |
| #define EAI_FAMILY (-6) |
| #define EAI_SOCKTYPE (-7) |
| #define EAI_SERVICE (-8) |
| #define EAI_MEMORY (-10) |
| #define EAI_SYSTEM (-11) |
| #endif |
| |
| #ifndef AI_PASSIVE |
| #define AI_PASSIVE 0x0001 |
| #endif |
| |
| #ifndef AI_NUMERICHOST |
| |
| |
| |
| |
| #if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO) |
| #define AI_NUMERICHOST 0 |
| #else |
| #define AI_NUMERICHOST 0x0004 |
| #endif |
| #endif |
| |
| #ifndef AI_CANONNAME |
| #if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO) |
| #define AI_CANONNAME 0 |
| #else |
| #define AI_CANONNAME 0x0008 |
| #endif |
| #endif |
| |
| #ifndef AI_NUMERICSERV |
| #if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO) |
| #define AI_NUMERICSERV 0 |
| #else |
| #define AI_NUMERICSERV 0x0010 |
| #endif |
| #endif |
| |
| #ifndef NI_NUMERICHOST |
| #define NI_NUMERICHOST 1 |
| #endif |
| |
| #ifndef NI_NUMERICSERV |
| #define NI_NUMERICSERV 2 |
| #endif |
| |
| #ifndef NI_NOFQDN |
| #define NI_NOFQDN 4 |
| #endif |
| |
| #ifndef NI_NAMEREQD |
| #define NI_NAMEREQD 8 |
| #endif |
| |
| #ifndef NI_DGRAM |
| #define NI_DGRAM 16 |
| #endif |
| |
| |
| #ifndef NI_MAXHOST |
| #define NI_MAXHOST 1025 |
| #endif |
| |
| #ifndef NI_MAXSERV |
| #define NI_MAXSERV 32 |
| #endif |
| |
| #ifndef HAVE_STRUCT_ADDRINFO |
| struct addrinfo |
| { |
| int ai_flags; |
| int ai_family; |
| int ai_socktype; |
| int ai_protocol; |
| size_t ai_addrlen; |
| struct sockaddr *ai_addr; |
| char *ai_canonname; |
| struct addrinfo *ai_next; |
| }; |
| #endif |
| |
| #ifndef HAVE_STRUCT_SOCKADDR_STORAGE |
| struct sockaddr_storage { |
| unsigned short ss_family; |
| unsigned long ss_align; |
| char ss_padding[128 - sizeof (unsigned long)]; |
| }; |
| #endif |
| |
| #ifndef HAVE_GETADDRINFO |
| |
| |
| #ifdef getaddrinfo |
| #undef getaddrinfo |
| #endif |
| #define getaddrinfo pg_getaddrinfo |
| |
| #ifdef freeaddrinfo |
| #undef freeaddrinfo |
| #endif |
| #define freeaddrinfo pg_freeaddrinfo |
| |
| #ifdef gai_strerror |
| #undef gai_strerror |
| #endif |
| #define gai_strerror pg_gai_strerror |
| |
| #ifdef getnameinfo |
| #undef getnameinfo |
| #endif |
| #define getnameinfo pg_getnameinfo |
| |
| extern int getaddrinfo(const char *node, const char *service, |
| const struct addrinfo * hints, struct addrinfo ** res); |
| extern void freeaddrinfo(struct addrinfo * res); |
| extern const char *gai_strerror(int errcode); |
| extern int getnameinfo(const struct sockaddr * sa, socklen_t salen, |
| char *node, size_t nodelen, |
| char *service, size_t servicelen, int flags); |
| #endif |
| |
| #endif |