diff options
Diffstat (limited to 'include/my_net.h')
-rw-r--r-- | include/my_net.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/my_net.h b/include/my_net.h index c2ebe80a343..79ddc7d08f6 100644 --- a/include/my_net.h +++ b/include/my_net.h @@ -67,5 +67,41 @@ C_MODE_START void my_inet_ntoa(struct in_addr in, char *buf); +/* + Handling of gethostbyname_r() +*/ + +#if defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) +#if !defined(HPUX) +struct hostent; +#endif /* HPUX */ +struct hostent *my_gethostbyname_r(const char *name, + struct hostent *result, char *buffer, + int buflen, int *h_errnop); +#define my_gethostbyname_r_free() +#if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) +#define GETHOSTBYNAME_BUFF_SIZE 2048 +#else +#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data) +#endif /* defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */ + +#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT) +#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data) +struct hostent *my_gethostbyname_r(const char *name, + struct hostent *result, char *buffer, + int buflen, int *h_errnop); +#define my_gethostbyname_r_free() +#elif !defined(HAVE_GETHOSTBYNAME_R) +#define GETHOSTBYNAME_BUFF_SIZE 2048 +struct hostent *my_gethostbyname_r(const char *name, + struct hostent *result, char *buffer, + int buflen, int *h_errnop); +void my_gethostbyname_r_free(); +#else +#define GETHOSTBYNAME_BUFF_SIZE 2048 +#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E)) +#define my_gethostbyname_r_free() +#endif /* defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */ + C_MODE_END #endif |