diff options
Diffstat (limited to 'source4/lib')
-rw-r--r-- | source4/lib/socket/config.m4 | 7 | ||||
-rw-r--r-- | source4/lib/socket/socket.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/source4/lib/socket/config.m4 b/source4/lib/socket/config.m4 index 588bf9064e..8c4a9fe40c 100644 --- a/source4/lib/socket/config.m4 +++ b/source4/lib/socket/config.m4 @@ -1,6 +1,11 @@ SMB_MODULE_MK(socket_ipv4,SOCKET,STATIC,lib/socket/config.mk) -SMB_MODULE_MK(socket_ipv6,SOCKET,STATIC,lib/socket/config.mk) SMB_MODULE_MK(socket_unix,SOCKET,STATIC,lib/socket/config.mk) +AC_CHECK_FUNCS(gethostbyname2, have_ipv6=true, have_ipv6=false) +if $have_ipv6 = true; then + AC_DEFINE(HAVE_SOCKET_IPV6,1,[Whether the system has ipv6 support]) + SMB_MODULE_MK(socket_ipv6,SOCKET,STATIC,lib/socket/config.mk) +fi + SMB_SUBSYSTEM_MK(SOCKET,lib/socket/config.mk) diff --git a/source4/lib/socket/socket.c b/source4/lib/socket/socket.c index c3cacbebd8..84bb1ccafe 100644 --- a/source4/lib/socket/socket.c +++ b/source4/lib/socket/socket.c @@ -267,9 +267,11 @@ const struct socket_ops *socket_getops_byname(const char *name, enum socket_type return socket_ipv4_ops(); } +#if HAVE_SOCKET_IPV6 if (strcmp("ipv6", name) == 0) { return socket_ipv6_ops(); } +#endif if (strcmp("unix", name) == 0) { return socket_unixdom_ops(); |