Author: metze
Date: 2007-04-27 14:31:26 +0000 (Fri, 27 Apr 2007)
New Revision: 22536

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22536

Log:
resolve name before passing to cldap

metze
Modified:
   branches/SAMBA_4_0/source/libnet/libnet_site.c


Changeset:
Modified: branches/SAMBA_4_0/source/libnet/libnet_site.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_site.c      2007-04-27 14:23:08 UTC 
(rev 22535)
+++ branches/SAMBA_4_0/source/libnet/libnet_site.c      2007-04-27 14:31:26 UTC 
(rev 22536)
@@ -24,6 +24,7 @@
 #include "lib/ldb/include/ldb.h"
 #include "lib/ldb/include/ldb_errors.h"
 #include "librpc/rpc/dcerpc.h"
+#include "libcli/resolve/resolve.h"
 
 /*
  * 1. Setup a CLDAP socket.
@@ -128,6 +129,8 @@
 
        const char *server_dn_str;
        const char *config_dn_str;
+       struct nbt_name name;
+       const char *dest_addr = NULL;
 
        tmp_ctx = talloc_named(libnet_r, 0, "libnet_JoinSite temp context");
        if (!tmp_ctx) {
@@ -142,8 +145,16 @@
                return NT_STATUS_NO_MEMORY;
        }
 
+       make_nbt_name_client(&name, libnet_r->out.samr_binding->host);
+       status = resolve_name(&name, r, &dest_addr, NULL);
+       if (!NT_STATUS_IS_OK(status)) {
+               libnet_r->out.error_string = NULL;
+               talloc_free(tmp_ctx);
+               return status;
+       }
+
        /* Resolve the site name and AD DN's. */
-       r->in.dest_address = libnet_r->out.samr_binding->host;
+       r->in.dest_address = dest_addr;
        r->in.netbios_name = libnet_r->in.netbios_name;
        r->in.domain_dn_str = libnet_r->out.domain_dn_str;
 
@@ -152,7 +163,7 @@
                libnet_r->out.error_string =
                        talloc_steal(libnet_r, r->out.error_string);
                talloc_free(tmp_ctx);
-               return NT_STATUS_NO_MEMORY;
+               return status;
        }
 
        config_dn_str = r->out.config_dn_str;

Reply via email to