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:
parent
13ac91d9a1
commit
2fc11518b7
@ -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;
|
||||
}
|
||||
|
@ -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'
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user