The Samba-Bugzilla – Attachment 9778 Details for
Bug 10464
samba4 services not binding on IPv6 addresses causing connection delays
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patches for v4-1-test
tmp41.diff (text/plain), 8.39 KB, created by
Stefan Metzmacher
on 2014-03-17 12:28:00 UTC
(
hide
)
Description:
Patches for v4-1-test
Filename:
MIME Type:
Creator:
Stefan Metzmacher
Created:
2014-03-17 12:28:00 UTC
Size:
8.39 KB
patch
obsolete
>From c3bd7971f644428549418576641070346dd10d52 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Thu, 27 Feb 2014 10:18:35 +0100 >Subject: [PATCH 1/2] s4:lib/socket: use the same logic in > iface_list_wildcard() as in smbd > >If we have ipv6 support we should listen on "::" too. > >Bug: https://bugzilla.samba.org/show_bug.cgi?id=10464 >Signed-off-by: Stefan Metzmacher <metze@samba.org> > >Change-Id: I8ce185d5070280149bee9fd33010443be9031089 >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit a571fe520d09a00273a58b1fb0fa9aab8e0aefce) >--- > source4/lib/socket/interface.c | 26 +++++--------------------- > 1 file changed, 5 insertions(+), 21 deletions(-) > >diff --git a/source4/lib/socket/interface.c b/source4/lib/socket/interface.c >index 7a4733f..cdfadc9 100644 >--- a/source4/lib/socket/interface.c >+++ b/source4/lib/socket/interface.c >@@ -505,27 +505,11 @@ bool iface_list_same_net(const char *ip1, const char *ip2, const char *netmask) > */ > const char **iface_list_wildcard(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx) > { >- const char **ret; >- ret = (const char **)str_list_make(mem_ctx, "0.0.0.0", NULL); >- if (ret == NULL) return NULL; >- >+ char **ret; > #ifdef HAVE_IPV6 >- if (lpcfg_parm_bool(lp_ctx, NULL, "ipv6", "enable", true)) { >- struct interface *local_interfaces = NULL; >- >- load_interface_list(ret, lp_ctx, &local_interfaces); >- >- if (iface_list_first_v6(local_interfaces)) { >- TALLOC_FREE(local_interfaces); >- /* >- * only add "::" if we have at least >- * one ipv6 interface >- */ >- return str_list_add(ret, "::"); >- } >- TALLOC_FREE(local_interfaces); >- } >+ ret = str_list_make(mem_ctx, "::,0.0.0.0", NULL); >+#else >+ ret = str_list_make(mem_ctx, "0.0.0.0", NULL); > #endif >- >- return ret; >+ return discard_const_p(const char *, ret); > } >-- >1.7.9.5 > > >From 3b9de671442802720c05455f2901407d2363f189 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Thu, 27 Feb 2014 10:28:23 +0100 >Subject: [PATCH 2/2] s4:lib/socket: simplify iface_list_wildcard() and its > callers > >Bug: https://bugzilla.samba.org/show_bug.cgi?id=10464 >Signed-off-by: Stefan Metzmacher <metze@samba.org> > >Change-Id: Ib317d71dea01fc8ef6b6a26455f15a8a175d59f6 >Reviewed-by: Andrew Bartlett <abartlet@samba.org> > >Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> >Autobuild-Date(master): Fri Mar 7 02:18:17 CET 2014 on sn-devel-104 >(cherry picked from commit f7883ae02a4e8935a44396f776712cebfd411e52) >--- > source4/cldap_server/cldap_server.c | 2 +- > source4/dns_server/dns_server.c | 8 ++++---- > source4/kdc/kdc.c | 2 +- > source4/ldap_server/ldap_server.c | 4 ++-- > source4/lib/socket/interface.c | 4 ++-- > source4/rpc_server/dcerpc_server.c | 4 ++-- > source4/smb_server/service_smb.c | 4 ++-- > source4/web_server/web_server.c | 4 ++-- > 8 files changed, 16 insertions(+), 16 deletions(-) > >diff --git a/source4/cldap_server/cldap_server.c b/source4/cldap_server/cldap_server.c >index a6248d4..ff8fe13 100644 >--- a/source4/cldap_server/cldap_server.c >+++ b/source4/cldap_server/cldap_server.c >@@ -158,7 +158,7 @@ static NTSTATUS cldapd_startup_interfaces(struct cldapd_server *cldapd, struct l > /* 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)) { >- const char **wcard = iface_list_wildcard(cldapd, lp_ctx); >+ char **wcard = iface_list_wildcard(cldapd); > NT_STATUS_HAVE_NO_MEMORY(wcard); > for (i=0; wcard[i]; i++) { > status = cldapd_add_socket(cldapd, lp_ctx, wcard[i]); >diff --git a/source4/dns_server/dns_server.c b/source4/dns_server/dns_server.c >index 7ad4aca..976774d 100644 >--- a/source4/dns_server/dns_server.c >+++ b/source4/dns_server/dns_server.c >@@ -657,7 +657,7 @@ static NTSTATUS dns_add_socket(struct dns_server *dns, > /* > setup our listening sockets on the configured network interfaces > */ >-static NTSTATUS dns_startup_interfaces(struct dns_server *dns, struct loadparm_context *lp_ctx, >+static NTSTATUS dns_startup_interfaces(struct dns_server *dns, > struct interface *ifaces) > { > const struct model_ops *model_ops; >@@ -687,8 +687,8 @@ static NTSTATUS dns_startup_interfaces(struct dns_server *dns, struct loadparm_c > NT_STATUS_NOT_OK_RETURN(status); > } > } else { >- const char **wcard; >- wcard = iface_list_wildcard(tmp_ctx, lp_ctx); >+ char **wcard; >+ wcard = iface_list_wildcard(tmp_ctx); > if (wcard == NULL) { > DEBUG(0, ("No wildcard address available\n")); > return NT_STATUS_INTERNAL_ERROR; >@@ -891,7 +891,7 @@ static void dns_task_init(struct task_server *task) > DLIST_ADD_END(dns->zones, z, NULL); > } > >- status = dns_startup_interfaces(dns, task->lp_ctx, ifaces); >+ status = dns_startup_interfaces(dns, ifaces); > if (!NT_STATUS_IS_OK(status)) { > task_server_terminate(task, "dns failed to setup interfaces", true); > return; >diff --git a/source4/kdc/kdc.c b/source4/kdc/kdc.c >index a893906..2fa1755 100644 >--- a/source4/kdc/kdc.c >+++ b/source4/kdc/kdc.c >@@ -734,7 +734,7 @@ 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)) { >- const char **wcard = iface_list_wildcard(kdc, lp_ctx); >+ char **wcard = iface_list_wildcard(kdc); > NT_STATUS_HAVE_NO_MEMORY(wcard); > for (i=0; wcard[i]; i++) { > if (kdc_port) { >diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c >index 0c0beca..99595eb 100644 >--- a/source4/ldap_server/ldap_server.c >+++ b/source4/ldap_server/ldap_server.c >@@ -962,9 +962,9 @@ static void ldapsrv_task_init(struct task_server *task) > if (!NT_STATUS_IS_OK(status)) goto failed; > } > } else { >- const char **wcard; >+ char **wcard; > int i; >- wcard = iface_list_wildcard(task, task->lp_ctx); >+ wcard = iface_list_wildcard(task); > if (wcard == NULL) { > DEBUG(0,("No wildcard addresses available\n")); > goto failed; >diff --git a/source4/lib/socket/interface.c b/source4/lib/socket/interface.c >index cdfadc9..504a727 100644 >--- a/source4/lib/socket/interface.c >+++ b/source4/lib/socket/interface.c >@@ -503,7 +503,7 @@ bool iface_list_same_net(const char *ip1, const char *ip2, const char *netmask) > return the list of wildcard interfaces > this will include the IPv4 0.0.0.0, and may include IPv6 :: > */ >-const char **iface_list_wildcard(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx) >+char **iface_list_wildcard(TALLOC_CTX *mem_ctx) > { > char **ret; > #ifdef HAVE_IPV6 >@@ -511,5 +511,5 @@ const char **iface_list_wildcard(TALLOC_CTX *mem_ctx, struct loadparm_context *l > #else > ret = str_list_make(mem_ctx, "0.0.0.0", NULL); > #endif >- return discard_const_p(const char *, ret); >+ return ret; > } >diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c >index 10e711b..e41c055 100644 >--- a/source4/rpc_server/dcerpc_server.c >+++ b/source4/rpc_server/dcerpc_server.c >@@ -1739,9 +1739,9 @@ static NTSTATUS dcesrv_add_ep_tcp(struct dcesrv_context *dce_ctx, > NT_STATUS_NOT_OK_RETURN(status); > } > } else { >- const char **wcard; >+ char **wcard; > int i; >- wcard = iface_list_wildcard(dce_ctx, lp_ctx); >+ wcard = iface_list_wildcard(dce_ctx); > NT_STATUS_HAVE_NO_MEMORY(wcard); > for (i=0; wcard[i]; i++) { > status = add_socket_rpc_tcp_iface(dce_ctx, e, event_ctx, model_ops, wcard[i]); >diff --git a/source4/smb_server/service_smb.c b/source4/smb_server/service_smb.c >index 958792e..0e4897c 100644 >--- a/source4/smb_server/service_smb.c >+++ b/source4/smb_server/service_smb.c >@@ -63,9 +63,9 @@ static void smbsrv_task_init(struct task_server *task) > if (!NT_STATUS_IS_OK(status)) goto failed; > } > } else { >- const char **wcard; >+ char **wcard; > int i; >- wcard = iface_list_wildcard(task, task->lp_ctx); >+ wcard = iface_list_wildcard(task); > if (wcard == NULL) { > DEBUG(0,("No wildcard addresses available\n")); > goto failed; >diff --git a/source4/web_server/web_server.c b/source4/web_server/web_server.c >index 239612a..0339b55 100644 >--- a/source4/web_server/web_server.c >+++ b/source4/web_server/web_server.c >@@ -336,9 +336,9 @@ static void websrv_task_init(struct task_server *task) > > talloc_free(ifaces); > } else { >- const char **wcard; >+ char **wcard; > int i; >- wcard = iface_list_wildcard(task, task->lp_ctx); >+ wcard = iface_list_wildcard(task); > if (wcard == NULL) { > DEBUG(0,("No wildcard addresses available\n")); > goto failed; >-- >1.7.9.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
abartlet
:
review+
Actions:
View
Attachments on
bug 10464
: 9778 |
9779