Author: brad Date: 2005-08-20 16:38:29 +0000 (Sat, 20 Aug 2005) New Revision: 9427
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9427 Log: [EMAIL PROTECTED]: j0j0 | 2005-08-20 10:44:52 -0600 Some bugfixes. Removed a bunch of debugging code. torture_leave_domain() works again! not 100% perfect yet though... 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:9397 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5502 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5497 + 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9397 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5504 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5497 Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c =================================================================== --- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-20 14:31:12 UTC (rev 9426) +++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-20 16:38:29 UTC (rev 9427) @@ -422,7 +422,7 @@ } 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; + 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,7 +432,9 @@ r->out.realm = NULL; r->out.kvno = 0; + talloc_free(tmp_ctx); + return NT_STATUS_OK; } @@ -644,7 +646,9 @@ } } +/* testing talloc_free(tmp_ctx); +*/ return NT_STATUS_OK; } @@ -703,10 +707,17 @@ return status; } + + /* 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; + */ + r2.out.samr_pipe = talloc_steal(mem_ctx, r->out.samr_pipe); + r2.out.user_handle = talloc_steal(mem_ctx, r->out.user_handle); + r2.out.domain_sid = talloc_steal(mem_ctx, r->out.domain_sid); + r2.out.join_password = talloc_steal(mem_ctx, r->out.join_password); sct = talloc_asprintf(mem_ctx, "%d", r->in.secure_channel_type); msg = ldb_msg_new(mem_ctx); Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h =================================================================== --- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h 2005-08-20 14:31:12 UTC (rev 9426) +++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h 2005-08-20 16:38:29 UTC (rev 9427) @@ -44,10 +44,11 @@ unsigned int kvno; /* msDS-KeyVersionNumber */ struct dcerpc_pipe *samr_pipe; struct dcerpc_binding *samr_binding; - struct policy_handle user_handle; + struct policy_handle *user_handle; } out; }; +/*I think this struct can be cleaned up.*/ struct libnet_Join { struct { const char *domain_name; @@ -61,7 +62,7 @@ const char *join_password; struct dom_sid *domain_sid; struct dcerpc_pipe *samr_pipe; - struct policy_handle user_handle; + struct policy_handle *user_handle; } out; }; Modified: branches/SOC/SAMBA_4_0/source/torture/rpc/dssync.c =================================================================== --- branches/SOC/SAMBA_4_0/source/torture/rpc/dssync.c 2005-08-20 14:31:12 UTC (rev 9426) +++ branches/SOC/SAMBA_4_0/source/torture/rpc/dssync.c 2005-08-20 16:38:29 UTC (rev 9427) @@ -80,7 +80,6 @@ struct drsuapi_DsBindInfoCtr *our_bind_info; const char *binding = lp_parm_string(-1, "torture", "binding"); const char *new_dc_pass; - ctx = talloc_zero(mem_ctx, struct DsSyncTest); if (!ctx) return NULL; @@ -115,54 +114,12 @@ /*create machine account*/ ctx->new_dc.join = torture_join_domain(mem_ctx, TEST_MACHINE_NAME, lp_workgroup(), ACB_SVRTRUST, &new_dc_pass); - /* debugging printf()'s*/ - if (torture_join_samr_pipe(ctx->new_dc.join) != NULL) { - printf("test_create_context(): tj->p isn't null\n"); - } else { - printf("test_create_context(): tj->p is null.\n"); - } - - if (torture_join_samr_user_policy(ctx->new_dc.join) != NULL) { - printf("test_create_context(): tj->user_handle isn't null\n"); - } else { - printf("test_create_context(): tj->user_handle is null.\n"); - } - - /* - ctx->libnet_ctx = libnet_context_init(NULL); - if (ctx->libnet_ctx == NULL) { - printf("libnet_context_init() failed, ctx->libnet_ctx not initialized.\n"); - } - ctx->libnet_ctx->cred = cmdline_credentials; - - ctx->libnet_r.in.domain_name = ctx->admin.credentials->domain; - ctx->libnet_r.in.secure_channel_type = SEC_CHAN_BDC; - ctx->libnet_r.in.level = LIBNET_JOIN_SPECIFIED; - ctx->libnet_r.in.netbios_name = TEST_MACHINE_NAME; - - status = libnet_Join(ctx->libnet_ctx, ctx, &ctx->libnet_r); - if (!NT_STATUS_IS_OK(status)) { - const char *errstr = nt_errstr(status); - if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) { - errstr = dcerpc_errstr(ctx, ctx->admin.drsuapi.pipe->last_fault_code); - } - printf("libnet_Join() failed - %s\n", errstr); - printf("libnet_r.out.error_string returned: %s\n",ctx->libnet_r.out.error_string); - ret = False; - } else { - printf("Joined domain %s as %s.\n",ctx->libnet_r.in.domain_name,ctx->libnet_r.in.netbios_name); - } - */ - - ctx->new_dc.credentials = cli_credentials_init(ctx); cli_credentials_set_workstation(ctx->new_dc.credentials, TEST_MACHINE_NAME, CRED_SPECIFIED); 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); - 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(); @@ -229,11 +186,6 @@ } } - /* - This will need to be replaced with a libnet leave domain call. - It will remove the computer dn: CN=smbtorturedssync,OU=Domain Controllers,DC=smb,DC=test - entry, and maybe the server dn also. - */ printf("test_destroy_context(): Removing machine account %s$.\n",TEST_MACHINE_NAME); if (ctx->new_dc.join) { torture_leave_domain(ctx->new_dc.join); Modified: branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c =================================================================== --- branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c 2005-08-20 14:31:12 UTC (rev 9426) +++ branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c 2005-08-20 16:38:29 UTC (rev 9427) @@ -288,6 +288,7 @@ struct libnet_context *libnet_ctx; struct libnet_JoinDomain libnet_r; struct test_join *tj; + NTSTATUS status; libnet_ctx = libnet_context_init(NULL); @@ -306,36 +307,16 @@ the machine acct info in secrets.tdb. We don't want that for a torture_join. */ status = libnet_JoinDomain(libnet_ctx, mem_ctx, &libnet_r); - if (!NT_STATUS_IS_OK(status)) { return NULL; } + tj = talloc(mem_ctx, struct test_join); - /* this bit makes torture_leave_domain() segfault... - libnet_ctx seems to be a better place to fetch most of this from anyway. - tj->p = libnet_r.out.samr_pipe; - tj->user_handle = libnet_r.out.user_handle; + tj->user_handle = *libnet_r.out.user_handle; tj->dom_sid = dom_sid_string(mem_ctx, libnet_r.out.domain_sid); *machine_password = libnet_r.out.join_password; - */ - if (libnet_ctx->pipe != NULL) { - printf("torture_join_domain(): libnet_ctx->pipe isn't null\n"); - } else { - printf("torture_join_domain(): libnet_ctx->pipe is null.\n"); - } - - if (&libnet_ctx->user_handle != NULL) { - printf("torture_join_domain(): libnet_ctx->user_handle isn't null\n"); - } else { - printf("torture_join_domain(): libnet_ctx->user_handle is null.\n"); - } - - tj->p = libnet_ctx->pipe; - tj->user_handle = libnet_ctx->user_handle; - 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"); return tj;
