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 <tri...@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 <tri...@samba.org> Autobuild-Date: Wed Jun 8 06:07:29 CEST 2011 on sn-devel-104 commit e14538d9394fc5d21a5e3ec34574b9fb5c468ba2 Author: Andrew Tridgell <tri...@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 <tri...@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