diff options
author | Andrew Tridgell <tridge@samba.org> | 2011-05-12 12:35:02 +0200 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2011-06-06 12:26:10 +1000 |
commit | dc8c8fd9e4f85974cd0665e613d4422ba8dd900e (patch) | |
tree | 0f1f60584986c4648ace8af742d2023fe5c87dc8 /source4/kdc | |
parent | d510687408c03291df767e0ccacebcd4a360646c (diff) | |
download | samba-dc8c8fd9e4f85974cd0665e613d4422ba8dd900e.tar.gz samba-dc8c8fd9e4f85974cd0665e613d4422ba8dd900e.tar.bz2 samba-dc8c8fd9e4f85974cd0665e613d4422ba8dd900e.zip |
s4-ipv6: use iface_list_wildcard() to listen on IPv6
when we need to listen on a wildcard address, we now listen on a list
of sockets, usually 0.0.0.0 and ::
Diffstat (limited to 'source4/kdc')
-rw-r--r-- | source4/kdc/kdc.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/source4/kdc/kdc.c b/source4/kdc/kdc.c index 02c6f925a9..5620c0b288 100644 --- a/source4/kdc/kdc.c +++ b/source4/kdc/kdc.c @@ -734,19 +734,24 @@ static NTSTATUS kdc_startup_interfaces(struct kdc_server *kdc, struct loadparm_c /* if we are allowing incoming packets from any address, then we need to bind to the wildcard address */ if (!lpcfg_bind_interfaces_only(lp_ctx)) { - if (kdc_port) { - status = kdc_add_socket(kdc, model_ops, - "kdc", "0.0.0.0", kdc_port, - kdc_process, false); - NT_STATUS_NOT_OK_RETURN(status); - } - - if (kpasswd_port) { - status = kdc_add_socket(kdc, model_ops, - "kpasswd", "0.0.0.0", kpasswd_port, - kpasswdd_process, false); - NT_STATUS_NOT_OK_RETURN(status); + const char **wcard = iface_list_wildcard(kdc, lp_ctx); + NT_STATUS_HAVE_NO_MEMORY(wcard); + for (i=0; wcard[i]; i++) { + if (kdc_port) { + status = kdc_add_socket(kdc, model_ops, + "kdc", wcard[i], kdc_port, + kdc_process, false); + NT_STATUS_NOT_OK_RETURN(status); + } + + if (kpasswd_port) { + status = kdc_add_socket(kdc, model_ops, + "kpasswd", wcard[i], kpasswd_port, + kpasswdd_process, false); + NT_STATUS_NOT_OK_RETURN(status); + } } + talloc_free(wcard); done_wildcard = true; } |