Author: brad
Date: 2005-08-17 05:15:31 +0000 (Wed, 17 Aug 2005)
New Revision: 9351

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

Log:
 [EMAIL PROTECTED]:  j0j0 | 2005-08-16 23:23:58 -0600
 Removed LIBNET_JOIN_TORTURE level, as it became unnecessary once 
libnet_Join_primary_domain() handled netbios names better.
 Corrected libnet_JoinDomain() and libnet_JoinADSDomain().
 

Modified:
   branches/SOC/SAMBA_4_0/
   branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c
   branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h
   branches/SOC/SAMBA_4_0/source/torture/rpc/dssync.c
   branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c


Changeset:

Property changes on: branches/SOC/SAMBA_4_0
___________________________________________________________________
Name: svk:merge
   - 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9311
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5436
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5433
   + 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9311
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5438
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5433

Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c
===================================================================
--- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c  2005-08-17 05:09:32 UTC 
(rev 9350)
+++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c  2005-08-17 05:15:31 UTC 
(rev 9351)
@@ -420,9 +420,9 @@
                        return status;
                }
        }
-       r->out.samr_pipe = samr_pipe;
-       r->out.samr_binding = samr_binding;
-
+       r->out.samr_pipe = talloc_steal(mem_ctx, samr_pipe);
+       r->out.samr_binding = talloc_steal(mem_ctx, samr_binding);
+       r->out.user_handle = u_handle;
        /* Now, if it was AD, then we want to start looking changing a
         * few more things.  Otherwise, we are done. */
        if (realm) {
@@ -432,10 +432,7 @@
        r->out.realm = NULL;
        r->out.kvno = 0;
 
-       if (r->in.level != LIBNET_JOIN_TORTURE) {
-               /* This is probably not the best way to keep the connection 
from closing */
-               talloc_free(tmp_ctx); 
-       }
+       talloc_free(tmp_ctx); 
        return NT_STATUS_OK;
 }
 
@@ -641,11 +638,9 @@
                        return NT_STATUS_INTERNAL_DB_CORRUPTION;
                }
        }
+       
+       talloc_free(tmp_ctx); 
 
-       if (r->in.level != LIBNET_JOIN_TORTURE) {
-               /* This is probably not the best way to keep the connection 
from closing */
-               talloc_free(tmp_ctx); 
-       }
        return NT_STATUS_OK;
 }
 
@@ -677,12 +672,12 @@
        }
        r2.in.domain_name  = r->in.domain_name;
        
-       if ((r->in.level == LIBNET_JOIN_SPECIFIED) 
-               || (r->in.level == LIBNET_JOIN_TORTURE)) {
-               r2.in.netbios_name = r->in.netbios_name;
+       if ((r2.in.netbios_name != NULL) && (r2.in.level != 
LIBNET_JOIN_AUTOMATIC)) {
+               r2.in.netbios_name = r->in.netbios_name;
        } else {
                r2.in.netbios_name = talloc_asprintf(mem_ctx, "%s", 
lp_netbios_name());
        }
+       
        r2.in.account_name = talloc_asprintf(mem_ctx, "%s$", 
r2.in.netbios_name);
        
        /* Local secrets are stored in secrets.ldb */
@@ -703,10 +698,10 @@
                return status;
        }
        
-       if (r->in.level == LIBNET_JOIN_TORTURE) {
-               /* get the SAMR pipe we left open in libnet_JoinDomain() */
-               r->out.samr_pipe = r2.out.samr_pipe;
-       }
+       r->out.samr_pipe = r2.out.samr_pipe;
+       r->out.user_handle = r2.out.user_handle;
+       r->out.domain_sid = r2.out.domain_sid;
+       r->out.join_password = r2.out.join_password;
        
        sct = talloc_asprintf(mem_ctx, "%d", r->in.secure_channel_type);
        msg = ldb_msg_new(mem_ctx);
@@ -776,8 +771,8 @@
                                          msg->dn);
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        }
+       
        return NT_STATUS_OK;
-
 }
 
 NTSTATUS libnet_Join(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, struct 
libnet_Join *r)
@@ -800,7 +795,13 @@
                                         r->in.secure_channel_type, 
r->in.domain_name);
                return NT_STATUS_INVALID_PARAMETER;
        }
+       
        r->out.error_string = r2.out.error_string;
+       r->out.join_password = r2.out.join_password;
+       r->out.domain_sid = r2.out.domain_sid;
+       r->out.samr_pipe = r2.out.samr_pipe;
+       r->out.user_handle = r2.out.user_handle;
+       
        return nt_status;
 }
 

Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h
===================================================================
--- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h  2005-08-17 05:09:32 UTC 
(rev 9350)
+++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h  2005-08-17 05:15:31 UTC 
(rev 9351)
@@ -24,7 +24,6 @@
 enum libnet_Join_level {
        LIBNET_JOIN_AUTOMATIC,
        LIBNET_JOIN_SPECIFIED,
-       LIBNET_JOIN_TORTURE,
 };
 
 struct libnet_JoinDomain {

Modified: branches/SOC/SAMBA_4_0/source/torture/rpc/dssync.c
===================================================================
--- branches/SOC/SAMBA_4_0/source/torture/rpc/dssync.c  2005-08-17 05:09:32 UTC 
(rev 9350)
+++ branches/SOC/SAMBA_4_0/source/torture/rpc/dssync.c  2005-08-17 05:15:31 UTC 
(rev 9351)
@@ -76,7 +76,6 @@
 static struct DsSyncTest *test_create_context(TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
        struct DsSyncTest *ctx;
        struct drsuapi_DsBindInfoCtr *our_bind_info;
        const char *binding = lp_parm_string(-1, "torture", "binding");
@@ -114,9 +113,10 @@
        /* ctx->new_dc ...*/
 #define TEST_MACHINE_NAME "smbtorturedssync"
        /*create machine account*/
-       ctx->new_dc.join = torture_join_domain(TEST_MACHINE_NAME, 
lp_workgroup(), ACB_SVRTRUST, &new_dc_pass);  
+       ctx->new_dc.join = torture_join_domain(mem_ctx, TEST_MACHINE_NAME, 
lp_workgroup(), ACB_SVRTRUST, &new_dc_pass);  
 
-       /*ctx->libnet_ctx = libnet_context_init(NULL);
+       /*
+       ctx->libnet_ctx = libnet_context_init(NULL);
        if (ctx->libnet_ctx == NULL) {
         printf("libnet_context_init() failed, ctx->libnet_ctx not 
initialized.\n");
        }
@@ -148,17 +148,8 @@
        cli_credentials_set_domain(ctx->new_dc.credentials, lp_workgroup(), 
CRED_SPECIFIED);
        cli_credentials_set_username(ctx->new_dc.credentials, 
TEST_MACHINE_NAME"$", CRED_SPECIFIED);
 
-
-       /*here we need to tell determine the new_dc_pass out of the libnet_Join 
stuff*/
        cli_credentials_set_password(ctx->new_dc.credentials, new_dc_pass, 
CRED_SPECIFIED);
 
-       /*
-       new_dc_pass = ctx->libnet_r.out.join_password;
-       printf("new_dc_pass: %s.\n",new_dc_pass);
-
-       cli_credentials_set_password(ctx->new_dc.credentials, new_dc_pass, 
CRED_SPECIFIED);
-       */      
-
        cli_credentials_set_secure_channel_type(ctx->new_dc.credentials, 
SEC_CHAN_BDC);
 
        ctx->new_dc.invocation_id = GUID_random();
@@ -228,8 +219,8 @@
        if (ctx->new_dc.join) {
                torture_leave_domain(ctx->new_dc.join);
        }
-       */
        talloc_free(ctx);
+       */
 }
 
 static BOOL test_DsBind(struct DsSyncTest *ctx,        struct cli_credentials 
*credentials, struct DsSyncBindInfo *b)

Modified: branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c
===================================================================
--- branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c        2005-08-17 
05:09:32 UTC (rev 9350)
+++ branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c        2005-08-17 
05:15:31 UTC (rev 9351)
@@ -273,7 +273,8 @@
 }
 
 
-struct test_join *torture_join_domain(const char *machine_name, 
+struct test_join *torture_join_domain(TALLOC_CTX *mem_ctx, 
+                                     const char *machine_name, 
                                      const char *domain,
                                      uint16_t acct_flags,
                                      const char **machine_password)
@@ -288,9 +289,7 @@
        struct libnet_Join libnet_r;
        struct test_join *tj;
        NTSTATUS status;
-       TALLOC_CTX *mem_ctx;
        
-       mem_ctx = talloc_init("torture_join_domain");
        libnet_ctx = libnet_context_init(NULL);
        if (libnet_ctx == NULL) {
                talloc_free(mem_ctx);
@@ -298,8 +297,7 @@
        }
        libnet_ctx->cred = cmdline_credentials;
        libnet_r.in.domain_name = domain;
-       libnet_r.in.level = LIBNET_JOIN_TORTURE; /*LIBNET_JOIN_TORTURE 
indicates LIBNET_JOIN_SPECIFIED, and return from libnet_Join()
-                                                  with an open SAMR pipe.*/
+       libnet_r.in.level = LIBNET_JOIN_SPECIFIED; 
        libnet_r.in.netbios_name = machine_name;
        
        if (acct_flags == ACB_SVRTRUST) {
@@ -318,7 +316,6 @@
        tj->dom_sid = dom_sid_string(mem_ctx, libnet_r.out.domain_sid);
        *machine_password = libnet_r.out.join_password;
        printf("torture_join_domain() complete.\n");
-       talloc_free(mem_ctx); 
        return tj;
 }
 
@@ -366,7 +363,7 @@
        struct test_join *join;
 };
 
-struct test_join_ads_dc *torture_join_domain_ads_dc(const char *machine_name, 
+struct test_join_ads_dc *torture_join_domain_ads_dc(TALLOC_CTX *mem_ctx, const 
char *machine_name, 
                                                    const char *domain,
                                                    const char 
**machine_password)
 {
@@ -377,7 +374,7 @@
                return NULL;
        }
 
-       join->join = torture_join_domain(machine_name, domain,
+       join->join = torture_join_domain(mem_ctx, machine_name, domain,
                                        ACB_SVRTRUST,
                                        machine_password);
 

Reply via email to