r17472: Remove unused variable.
[samba.git] / source4 / libnet / libnet_join.c
index 5d1ba294c6d09b02dacc3d707c1eadc01f90a770..1d64257ca36ca20f222c52ea8c1b708539fffda5 100644 (file)
 
 #include "includes.h"
 #include "libnet/libnet.h"
-#include "librpc/gen_ndr/ndr_drsuapi.h"
+#include "librpc/gen_ndr/ndr_drsuapi_c.h"
 #include "lib/ldb/include/ldb.h"
 #include "lib/ldb/include/ldb_errors.h"
 #include "passdb/secrets.h"
 #include "dsdb/samdb/samdb.h"
+#include "db_wrap.h"
+#include "libcli/security/security.h"
+#include "auth/credentials/credentials.h"
+#include "librpc/gen_ndr/ndr_samr_c.h"
 
 /*
  * complete a domain join, when joining to a AD domain:
@@ -131,16 +135,14 @@ static NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, struct libnet_J
                if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
                        r->out.error_string
                                = talloc_asprintf(r,
-                                                 "dcerpc_drsuapi_DsBind for [%s\\%s] failed - %s\n", 
-                                                 r->in.domain_name, r->in.account_name, 
+                                                 "dcerpc_drsuapi_DsBind failed - %s\n", 
                                                  dcerpc_errstr(tmp_ctx, drsuapi_pipe->last_fault_code));
                        talloc_free(tmp_ctx);
                        return status;
                } else {
                        r->out.error_string
                                = talloc_asprintf(r,
-                                                 "dcerpc_drsuapi_DsBind for [%s\\%s] failed - %s\n", 
-                                                 r->in.domain_name, r->in.account_name, 
+                                                 "dcerpc_drsuapi_DsBind failed - %s\n", 
                                                  nt_errstr(status));
                        talloc_free(tmp_ctx);
                        return status;
@@ -402,7 +404,7 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
 
        NTSTATUS status, cu_status;
 
-       struct libnet_RpcConnectDCInfo *connect_with_info;
+       struct libnet_RpcConnect *connect_with_info;
        struct dcerpc_pipe *samr_pipe;
 
        struct samr_Connect sc;
@@ -443,7 +445,7 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
                return NT_STATUS_NO_MEMORY;
        }
        
-       connect_with_info = talloc(tmp_ctx, struct libnet_RpcConnectDCInfo);
+       connect_with_info = talloc(tmp_ctx, struct libnet_RpcConnect);
        if (!connect_with_info) {
                r->out.error_string = NULL;
                talloc_free(tmp_ctx);
@@ -452,19 +454,18 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
 
        /* prepare connect to the LSA pipe of PDC */
        if (r->in.level == LIBNET_JOINDOMAIN_AUTOMATIC) {
-               connect_with_info->level      = LIBNET_RPC_CONNECT_PDC;
                connect_with_info->in.name    = r->in.domain_name;
        } else {
-               connect_with_info->level      = LIBNET_RPC_CONNECT_BINDING;
                connect_with_info->in.binding = r->in.binding;
        }
 
+       connect_with_info->level              = LIBNET_RPC_CONNECT_DC_INFO;
        connect_with_info->in.dcerpc_iface    = &dcerpc_table_samr;
+
        /*
          establish a SAMR connection, on the same CIFS transport
        */
-       
-       status = libnet_RpcConnectDCInfo(ctx, connect_with_info);
+       status = libnet_RpcConnect(ctx, tmp_ctx, connect_with_info);
        if (!NT_STATUS_IS_OK(status)) {
                if (r->in.binding) {
                        r->out.error_string = talloc_asprintf(mem_ctx,
@@ -479,9 +480,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
                return status;
        }
 
-       samr_pipe = connect_with_info->out.dcerpc_pipe
+       samr_pipe = connect_with_info->out.dcerpc_pipe;
 
-       status = dcerpc_pipe_auth(samr_pipe,
+       status = dcerpc_pipe_auth(tmp_ctx, &samr_pipe,
                                  connect_with_info->out.dcerpc_pipe->binding, 
                                  &dcerpc_table_samr, ctx->cred);
        if (!NT_STATUS_IS_OK(status)) {
@@ -641,7 +642,7 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
                        if (!NT_STATUS_IS_OK(status)) {
                                r->out.error_string = talloc_asprintf(mem_ctx,
                                                                      "samr_CreateUser2 (recreate) for [%s] failed: %s\n",
-                                                                     r->in.domain_name, nt_errstr(status));
+                                                                     r->in.account_name, nt_errstr(status));
                                talloc_free(tmp_ctx);
                                return status;
                        }
@@ -649,7 +650,7 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
        } else if (!NT_STATUS_IS_OK(status)) {
                r->out.error_string = talloc_asprintf(mem_ctx,
                                                      "samr_CreateUser2 for [%s] failed: %s\n",
-                                                     r->in.domain_name, nt_errstr(status));
+                                                     r->in.account_name, nt_errstr(status));
                talloc_free(tmp_ctx);
                return status;
        }