Author: brad Date: 2005-08-12 02:55:11 +0000 (Fri, 12 Aug 2005) New Revision: 9256
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9256 Log: [EMAIL PROTECTED]: j0j0 | 2005-08-11 21:02:27 -0600 Clean up libnet_JoinADSDomain() a little, added a comment to the test_join struct. 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/testjoin.c Changeset: Property changes on: branches/SOC/SAMBA_4_0 ___________________________________________________________________ Name: svk:merge - 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9240 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5411 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5410 + 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9240 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5413 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5410 Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c =================================================================== --- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-12 02:27:38 UTC (rev 9255) +++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-12 02:55:11 UTC (rev 9256) @@ -74,18 +74,6 @@ struct samr_GetUserPwInfo pwp; struct lsa_String samr_account_name; - /* - struct dcerpc_pipe *drsuapi_pipe; - struct dcerpc_binding *drsuapi_binding; - struct drsuapi_DsBind r_drsuapi_bind; - struct drsuapi_DsCrackNames r_crack_names; - struct drsuapi_DsNameString names[1]; - struct policy_handle drsuapi_bind_handle; - struct GUID drsuapi_bind_guid; - */ - - /*struct ldb_context *remote_ldb;*/ - uint32_t acct_flags; uint32_t rid, access_granted; int policy_min_pw_len = 0; @@ -93,14 +81,7 @@ struct dom_sid *domain_sid; const char *domain_name; const char *realm = NULL; /* Also flag for remote being AD */ - /* - const char *account_dn; - char *remote_ldb_url; - struct ldb_message **msgs, *msg; - int ldb_ret; - */ - tmp_ctx = talloc_named(mem_ctx, 0, "libnet_Join temp context"); if (!tmp_ctx) { @@ -442,8 +423,11 @@ /* Now, if it was AD, then we want to start looking changing a * few more things. Otherwise, we are done. */ + if (realm) { - return libnet_JoinADSDomain(ctx, mem_ctx, tmp_ctx, samr_binding, realm, domain_name, r); + r->out.samr_pipe = samr_pipe; + r->out.samr_binding = samr_binding; + return libnet_JoinADSDomain(ctx, mem_ctx, tmp_ctx, r); } r->out.realm = NULL; r->out.kvno = 0; @@ -451,41 +435,16 @@ return NT_STATUS_OK; } -NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, TALLOC_CTX *tmp_ctx, struct dcerpc_binding *samr_binding, const char *realm, const char *domain_name, struct libnet_JoinDomain *r) +NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, TALLOC_CTX *tmp_ctx, struct libnet_JoinDomain *r) { - /*TALLOC_CTX *tmp_ctx;*/ - NTSTATUS status; - /* - struct libnet_RpcConnect c; - struct lsa_ObjectAttribute attr; - struct lsa_QosInfo qos; - struct lsa_OpenPolicy2 lsa_open_policy; - struct policy_handle lsa_p_handle; - struct lsa_QueryInfoPolicy2 lsa_query_info2; - struct lsa_QueryInfoPolicy lsa_query_info; - */ - - /* - struct dcerpc_binding *samr_binding; - struct dcerpc_pipe *samr_pipe; - struct samr_Connect sc; - struct policy_handle p_handle; - struct samr_OpenDomain od; - struct policy_handle d_handle; - struct samr_LookupNames ln; - struct samr_OpenUser ou; - struct samr_CreateUser2 cu; - struct policy_handle u_handle; - struct samr_QueryUserInfo qui; - struct samr_SetUserInfo sui; - union samr_UserInfo u_info; - union libnet_SetPassword r2; - struct samr_GetUserPwInfo pwp; - struct lsa_String samr_account_name; - */ - + NTSTATUS status; + + const char *realm = r->out.realm; + + struct dcerpc_binding *samr_binding = r->out.samr_binding; + struct dcerpc_pipe *drsuapi_pipe; struct dcerpc_binding *drsuapi_binding; struct drsuapi_DsBind r_drsuapi_bind; @@ -496,15 +455,6 @@ struct ldb_context *remote_ldb; - /* - uint32_t acct_flags; - uint32_t rid, access_granted; - int policy_min_pw_len = 0; - struct dom_sid *domain_sid; - */ - - /*const char *domain_name;*/ - /*const char *realm = NULL;*/ /* Also flag for remote being AD */ const char *account_dn; char *remote_ldb_url; @@ -518,12 +468,10 @@ NULL, }; - /* We need to convert between a samAccountName and domain to a * DN in the directory. The correct way to do this is with * DRSUAPI CrackNames */ - /* Fiddle with the bindings, so get to DRSUAPI on * NCACN_IP_TCP, sealed */ drsuapi_binding = talloc(tmp_ctx, struct dcerpc_binding); @@ -561,7 +509,7 @@ r->out.error_string = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsBind for [%s\\%s] failed - %s\n", - domain_name, r->in.account_name, + r->in.domain_name, r->in.account_name, dcerpc_errstr(tmp_ctx, drsuapi_pipe->last_fault_code)); talloc_free(tmp_ctx); return status; @@ -569,7 +517,7 @@ r->out.error_string = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsBind for [%s\\%s] failed - %s\n", - domain_name, r->in.account_name, + r->in.domain_name, r->in.account_name, nt_errstr(status)); talloc_free(tmp_ctx); return status; @@ -593,7 +541,7 @@ r_crack_names.in.req.req1.format_flags = DRSUAPI_DS_NAME_FLAG_NO_FLAGS; r_crack_names.in.req.req1.format_offered = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT; r_crack_names.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779; - names[0].str = talloc_asprintf(tmp_ctx, "%s\\%s", domain_name, r->in.account_name); + names[0].str = talloc_asprintf(tmp_ctx, "%s\\%s", r->in.domain_name, r->in.account_name); status = dcerpc_drsuapi_DsCrackNames(drsuapi_pipe, tmp_ctx, &r_crack_names); if (!NT_STATUS_IS_OK(status)) { @@ -601,7 +549,7 @@ r->out.error_string = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames for [%s\\%s] failed - %s\n", - domain_name, r->in.account_name, + r->in.domain_name, r->in.account_name, dcerpc_errstr(tmp_ctx, drsuapi_pipe->last_fault_code)); talloc_free(tmp_ctx); return status; @@ -609,7 +557,7 @@ r->out.error_string = talloc_asprintf(mem_ctx, "dcerpc_drsuapi_DsCrackNames for [%s\\%s] failed - %s\n", - domain_name, r->in.account_name, + r->in.domain_name, r->in.account_name, nt_errstr(status)); talloc_free(tmp_ctx); return status; Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h =================================================================== --- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h 2005-08-12 02:27:38 UTC (rev 9255) +++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h 2005-08-12 02:55:11 UTC (rev 9256) @@ -41,6 +41,8 @@ const char *domain_name; const char *realm; unsigned int kvno; /* msDS-KeyVersionNumber */ + struct dcerpc_pipe *samr_pipe; + struct dcerpc_binding *samr_binding; } out; }; Modified: branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c =================================================================== --- branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c 2005-08-12 02:27:38 UTC (rev 9255) +++ branches/SOC/SAMBA_4_0/source/torture/rpc/testjoin.c 2005-08-12 02:55:11 UTC (rev 9256) @@ -30,7 +30,7 @@ #include "system/time.h" struct test_join { - struct dcerpc_pipe *p; + struct dcerpc_pipe *p; /*SAMR pipe*/ struct policy_handle user_handle; const char *dom_sid; };
