1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

s4-ipv6: added iface_list_wildcard()

this returns a list of wildcard address to listen on, when we don't
have 'bind interfaces only' set. It is a list, not a single address,
we need to listen separately for the IPv6 "::" address from the IPv4
0.0.0.0 address.

This also takes account of the loadparm "socket address" option
This commit is contained in:
Andrew Tridgell 2011-05-12 12:23:35 +02:00
parent 13ac91d9a1
commit 2fc11518b7
2 changed files with 29 additions and 1 deletions

View File

@ -21,6 +21,7 @@
#include "includes.h"
#include "system/network.h"
#include "param/param.h"
#include "lib/socket/netif.h"
#include "../lib/util/util_net.h"
#include "../lib/util/dlinklist.h"
@ -428,3 +429,30 @@ bool iface_list_same_net(const char *ip1, const char *ip2, const char *netmask)
interpret_addr2(ip2),
interpret_addr2(netmask));
}
/**
return the list of wildcard interfaces
this will include the IPv4 0.0.0.0, and may include IPv6 ::
it is overridden by the 'socket address' option in smb.conf
*/
const char **iface_list_wildcard(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx)
{
const char **ret;
const char *socket_address;
/* the user may have configured a specific address */
socket_address = lpcfg_socket_address(lp_ctx);
if (strcmp(socket_address, "") != 0) {
ret = (const char **)str_list_make(mem_ctx, socket_address, NULL);
return ret;
}
ret = (const char **)str_list_make(mem_ctx, "0.0.0.0", NULL);
if (ret == NULL) return NULL;
#ifdef HAVE_IPV6
return str_list_add(ret, "::");
#endif
return ret;
}

View File

@ -2,7 +2,7 @@
bld.SAMBA_LIBRARY('netif',
source='interface.c',
deps='samba-util interfaces',
deps='samba-util interfaces samba-hostconfig',
private_library=True,
autoproto='netif_proto.h'
)