diff options
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/replace/README | 6 | ||||
-rw-r--r-- | source3/lib/replace/getaddrinfo.h (renamed from source3/lib/replace/system/getaddrinfo.h) | 0 | ||||
-rw-r--r-- | source3/lib/replace/libreplace.m4 | 39 | ||||
-rw-r--r-- | source3/lib/replace/replace.h | 7 |
4 files changed, 46 insertions, 6 deletions
diff --git a/source3/lib/replace/README b/source3/lib/replace/README index 77558b2ca9..c61f78a951 100644 --- a/source3/lib/replace/README +++ b/source3/lib/replace/README @@ -50,10 +50,16 @@ pwrite getpass readline (the library) inet_ntoa +inet_ntop +inet_pton strtoll strtoull socketpair strptime +getaddrinfo +freeaddrinfo +getnameinfo +gai_strerror Types: bool diff --git a/source3/lib/replace/system/getaddrinfo.h b/source3/lib/replace/getaddrinfo.h index ed678bd065..ed678bd065 100644 --- a/source3/lib/replace/system/getaddrinfo.h +++ b/source3/lib/replace/getaddrinfo.h diff --git a/source3/lib/replace/libreplace.m4 b/source3/lib/replace/libreplace.m4 index 354349187e..29ec2acdab 100644 --- a/source3/lib/replace/libreplace.m4 +++ b/source3/lib/replace/libreplace.m4 @@ -137,6 +137,45 @@ if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced]) fi +dnl test for struct addrinfo +AC_CACHE_CHECK([for struct addrinfo],samba_cv_HAVE_STRUCT_ADDRINFO,[ +AC_TRY_COMPILE([ +#include <sys/types.h> +#include <sys/socket.h> +#include <netdb.h>], +[ +struct addrinfo ai; +], +samba_cv_HAVE_STRUCT_ADDRINFO=yes,samba_cv_HAVE_STRUCT_ADDRINFO=no)]) +if test x"$samba_cv_HAVE_STRUCT_ADDRINFO" = x"yes"; then + AC_DEFINE(HAVE_STRUCT_ADDRINFO,1,[Whether the system has struct addrinfo]) +fi + +dnl test for getaddrinfo/getnameinfo +AC_CACHE_CHECK([for getaddrinfo],samba_cv_HAVE_GETADDRINFO,[ +AC_TRY_COMPILE([ +#include <sys/socket.h> +#include <sys/types.h> +#include <netdb.h>], +[ +struct sockaddr sa; +struct addrinfo *ai = NULL; +int ret = getaddrinfo(NULL, NULL, NULL, &ai); +if (ret != 0) { + const char *es = gai_strerror(ret); +} +freeaddrinfo(ai); +ret = getnameinfo(&sa, sizeof(sa), + NULL, 0, + NULL, 0, 0); + +], +samba_cv_HAVE_GETADDRINFO=yes,samba_cv_HAVE_GETADDRINFO=no)]) +if test x"$samba_cv_HAVE_GETADDRINFO" = x"yes"; then + AC_DEFINE(HAVE_GETADDRINFO,1,[Whether the system has getaddrinfo and getnameinfo]) +fi + + dnl Provided by replace.c: AC_TRY_COMPILE([ #include <sys/types.h> diff --git a/source3/lib/replace/replace.h b/source3/lib/replace/replace.h index ca4becaa70..26e39ac603 100644 --- a/source3/lib/replace/replace.h +++ b/source3/lib/replace/replace.h @@ -330,22 +330,17 @@ ssize_t rep_pread(int __fd, void *__buf, size_t __nbytes, off_t __offset); ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset); #endif -#include "system/network.h" - #ifndef HAVE_INET_PTON int rep_inet_pton(int af, const char *src, void *dst); #define inet_pton rep_inet_pton #endif #ifndef HAVE_INET_NTOP +#include "system/network.h" const char *rep_inet_ntop(int af, const void *src, char *dst, socklen_t size); #define inet_ntop rep_inet_ntop #endif -#if !defined(HAVE_GETADDRINFO) -#include "system/getaddrinfo.h" -#endif - #ifdef HAVE_LIMITS_H #include <limits.h> #endif |