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

Reply via email to