Author: brad Date: 2005-08-11 23:31:48 +0000 (Thu, 11 Aug 2005) New Revision: 9249
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9249 Log: [EMAIL PROTECTED]: j0j0 | 2005-08-11 17:38:44 -0600 Split libnet_JoinDomain() into 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 Changeset: Property changes on: branches/SOC/SAMBA_4_0 ___________________________________________________________________ Name: svk:merge - 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9179 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5373 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5370 + 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9179 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5375 d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5370 Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c =================================================================== --- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-11 22:59:02 UTC (rev 9248) +++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-11 23:31:48 UTC (rev 9249) @@ -74,6 +74,7 @@ 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; @@ -81,8 +82,9 @@ struct drsuapi_DsNameString names[1]; struct policy_handle drsuapi_bind_handle; struct GUID drsuapi_bind_guid; + */ - struct ldb_context *remote_ldb; + /*struct ldb_context *remote_ldb;*/ uint32_t acct_flags; uint32_t rid, access_granted; @@ -91,19 +93,15 @@ 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; + */ - const char *attrs[] = { - "msDS-KeyVersionNumber", - "servicePrincipalName", - "dNSHostName", - NULL, - }; - + tmp_ctx = talloc_named(mem_ctx, 0, "libnet_Join temp context"); if (!tmp_ctx) { r->out.error_string = NULL; @@ -444,13 +442,83 @@ /* Now, if it was AD, then we want to start looking changing a * few more things. Otherwise, we are done. */ - if (!realm) { - r->out.realm = NULL; - r->out.kvno = 0; - talloc_free(tmp_ctx); - return NT_STATUS_OK; + if (realm) { + return libnet_JoinADSDomain(ctx, mem_ctx, tmp_ctx, samr_binding, realm, domain_name, r); } + r->out.realm = NULL; + r->out.kvno = 0; + talloc_free(tmp_ctx); + 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) +{ + /*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; + */ + + 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; + 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; + + const char *attrs[] = { + "msDS-KeyVersionNumber", + "servicePrincipalName", + "dNSHostName", + 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 */ Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h =================================================================== --- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h 2005-08-11 22:59:02 UTC (rev 9248) +++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.h 2005-08-11 23:31:48 UTC (rev 9249) @@ -40,7 +40,7 @@ struct dom_sid *domain_sid; const char *domain_name; const char *realm; - unsigned int kvno; + unsigned int kvno; /* msDS-KeyVersionNumber */ } out; };
