[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Tue Jun 7 22:08:02 MDT 2011


The branch, master has been updated
       via  4afe426 s4-ipv6: fill in pdc_ip in DsRGetDCNameEx2
       via  e14538d s4-wins: ensure we only use IPv4 for WINS owner
       via  79ef434 s4-interface: raise the debug level for interface discovery
      from  c790213 s4-gensec bring GSS_S_CONTEXT_EXPIRED into it's own error handler

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 4afe426877fed3ed4d1dae4a8d96dce3f4983b91
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Jun 8 11:49:24 2011 +1000

    s4-ipv6: fill in pdc_ip in DsRGetDCNameEx2
    
    this may be different from the CLDAP response, as it can be IPv6
    
    Autobuild-User: Andrew Tridgell <tridge at samba.org>
    Autobuild-Date: Wed Jun  8 06:07:29 CEST 2011 on sn-devel-104

commit e14538d9394fc5d21a5e3ec34574b9fb5c468ba2
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Jun 8 10:42:02 2011 +1000

    s4-wins: ensure we only use IPv4 for WINS owner

commit 79ef434b900288f23f352dcce083c37308baef2d
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Jun 8 10:41:38 2011 +1000

    s4-interface: raise the debug level for interface discovery

-----------------------------------------------------------------------

Summary of changes:
 source4/lib/socket/interface.c                |    6 +++---
 source4/nbt_server/wins/wins_ldb.c            |    2 +-
 source4/nbt_server/wins/winsserver.c          |    2 +-
 source4/rpc_server/netlogon/dcerpc_netlogon.c |   15 ++++++++++++---
 4 files changed, 17 insertions(+), 8 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/lib/socket/interface.c b/source4/lib/socket/interface.c
index 9cb8f5e..d5b610f 100644
--- a/source4/lib/socket/interface.c
+++ b/source4/lib/socket/interface.c
@@ -116,18 +116,18 @@ static void add_interface(TALLOC_CTX *mem_ctx, const struct iface_struct *ifs, s
 	/* keep string versions too, to avoid people tripping over the implied
 	   static in inet_ntoa() */
 	print_sockaddr(addr, sizeof(addr), &iface->ip);
-	DEBUG(2,("added interface %s ip=%s ",
+	DEBUG(4,("added interface %s ip=%s ",
 		 iface->name, addr));
 	iface->ip_s = talloc_strdup(iface, addr);
 
 	print_sockaddr(addr, sizeof(addr),
 		       &iface->bcast);
-	DEBUG(2,("bcast=%s ", addr));
+	DEBUG(4,("bcast=%s ", addr));
 	iface->bcast_s = talloc_strdup(iface, addr);
 
 	print_sockaddr(addr, sizeof(addr),
 		       &iface->netmask);
-	DEBUG(2,("netmask=%s\n", addr));
+	DEBUG(4,("netmask=%s\n", addr));
 	iface->nmask_s = talloc_strdup(iface, addr);
 
 	/*
diff --git a/source4/nbt_server/wins/wins_ldb.c b/source4/nbt_server/wins/wins_ldb.c
index 6519f9e..304c98d 100644
--- a/source4/nbt_server/wins/wins_ldb.c
+++ b/source4/nbt_server/wins/wins_ldb.c
@@ -93,7 +93,7 @@ static int wins_ldb_init(struct ldb_module *module)
 	if (!owner) {
 		struct interface *ifaces;
 		load_interface_list(module, lp_ctx, &ifaces);
-		owner = iface_list_n_ip(ifaces, 0);
+		owner = iface_list_first_v4(ifaces);
 		if (!owner) {
 			owner = "0.0.0.0";
 		}
diff --git a/source4/nbt_server/wins/winsserver.c b/source4/nbt_server/wins/winsserver.c
index 604c86e..5f1f417 100644
--- a/source4/nbt_server/wins/winsserver.c
+++ b/source4/nbt_server/wins/winsserver.c
@@ -1058,7 +1058,7 @@ NTSTATUS nbtd_winsserver_init(struct nbtd_server *nbtsrv)
 	if (owner == NULL) {
 		struct interface *ifaces;
 		load_interface_list(nbtsrv->task, nbtsrv->task->lp_ctx, &ifaces);
-		owner = iface_list_n_ip(ifaces, 0);
+		owner = iface_list_first_v4(ifaces);
 	}
 
 	nbtsrv->winssrv->wins_db     = winsdb_connect(nbtsrv->winssrv, nbtsrv->task->event_ctx, 
diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c
index 8964c1d..d5a7eeb 100644
--- a/source4/rpc_server/netlogon/dcerpc_netlogon.c
+++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c
@@ -37,6 +37,7 @@
 #include "lib/tsocket/tsocket.h"
 #include "librpc/gen_ndr/ndr_netlogon.h"
 #include "librpc/gen_ndr/ndr_irpc.h"
+#include "lib/socket/netif.h"
 
 struct netlogon_server_pipe_state {
 	struct netr_Credential client_challenge;
@@ -1233,6 +1234,7 @@ static NTSTATUS dcesrv_netr_NetrEnumerateTrustedDomains(struct dcesrv_call_state
 static NTSTATUS dcesrv_netr_LogonGetCapabilities(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
 		       struct netr_LogonGetCapabilities *r)
 {
+
 	/* we don't support AES yet */
 	return NT_STATUS_NOT_IMPLEMENTED;
 }
@@ -1710,6 +1712,8 @@ static WERROR dcesrv_netr_DsRGetDCNameEx2(struct dcesrv_call_state *dce_call,
 	NTSTATUS status;
 	const char *dc_name = NULL;
 	const char *domain_name = NULL;
+	struct interface *ifaces;
+	const char *pdc_ip;
 
 	ZERO_STRUCTP(r->out.info);
 
@@ -1815,10 +1819,15 @@ static WERROR dcesrv_netr_DsRGetDCNameEx2(struct dcesrv_call_state *dce_call,
 	W_ERROR_HAVE_NO_MEMORY(info);
 	info->dc_unc           = talloc_asprintf(mem_ctx, "\\\\%s", dc_name);
 	W_ERROR_HAVE_NO_MEMORY(info->dc_unc);
-	info->dc_address = talloc_asprintf(mem_ctx, "\\\\%s",
-					   response.data.nt5_ex.sockaddr.pdc_ip);
+
+	load_interface_list(mem_ctx, lp_ctx, &ifaces);
+	pdc_ip = iface_list_best_ip(ifaces, addr);
+	if (pdc_ip == NULL) {
+		pdc_ip = "127.0.0.1";
+	}
+	info->dc_address = talloc_asprintf(mem_ctx, "\\\\%s", pdc_ip);
 	W_ERROR_HAVE_NO_MEMORY(info->dc_address);
-	info->dc_address_type  = DS_ADDRESS_TYPE_INET; /* TODO: make this dynamic? for ipv6 */
+	info->dc_address_type  = DS_ADDRESS_TYPE_INET;
 	info->domain_guid      = response.data.nt5_ex.domain_uuid;
 	info->domain_name      = domain_name;
 	info->forest_name      = response.data.nt5_ex.forest;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list