Author: brad Date: 2005-07-26 01:35:38 +0000 (Tue, 26 Jul 2005) New Revision: 8765
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8765 Log: more ldb changes to test_CompleteJoin(), it mostly kind of almost works now! Modified: branches/SOC/SAMBA_4_0/SAMBA_4_0/source/torture/rpc/dssync.c Changeset: Modified: branches/SOC/SAMBA_4_0/SAMBA_4_0/source/torture/rpc/dssync.c =================================================================== --- branches/SOC/SAMBA_4_0/SAMBA_4_0/source/torture/rpc/dssync.c 2005-07-26 01:11:02 UTC (rev 8764) +++ branches/SOC/SAMBA_4_0/SAMBA_4_0/source/torture/rpc/dssync.c 2005-07-26 01:35:38 UTC (rev 8765) @@ -123,46 +123,65 @@ return ctx; } -static void test_destroy_context(struct DsSyncTest *ctx) +static void test_destroy_context(struct DsSyncTest *ctx, struct ldb_context *ldb_ctx) { { const char *ldif; - struct ldap_message *req; //, *rep; - NTSTATUS rtn; - BOOL rtn_status = False; + //struct ldap_message *req, *rep; + struct ldb_ldif *ldb_req; + int rtn; + // * BOOL rtn_status = False; + rtn = ldb_connect(ldb_ctx,ctx->ldap_url,0,NULL); + if (rtn != 0) { + printf("test_destroy_context(): ldb_connect() failed: %s.\n", + ldb_errstring(ldb_ctx)); + return; + } ldif = talloc_asprintf(ctx, "dn: %s\n" "changetype: delete\n", ctx->new_dc.dc_info2.ntds_dn); + + ldb_req = ldb_ldif_read_string(ldb_ctx,&ldif); + printf("test_destroy_context(): deleting %s.\n",ctx->new_dc.dc_info2.ntds_dn); + rtn = ldb_delete(ldb_ctx,ctx->new_dc.dc_info2.ntds_dn); + if (rtn != 0) { + printf("test_destroy_context(): ldb_delete() failed: %s.\n", + ldb_errstring(ldb_ctx)); + return; + } - //req = ldap_ldif2msg(ctx, ldif); - //req.messageid = ; - req->type = LDAP_TAG_DelRequest; - req->r.DelRequest.dn = ctx->new_dc.dc_info2.ntds_dn; - //req.num_controls = ; - //req.controls = ; + // * req = ldap_ldif2msg(ctx, ldif); + // * req.messageid = ; + //req->type = LDAP_TAG_DelRequest; + //req->r.DelRequest.dn = ctx->new_dc.dc_info2.ntds_dn; + // * req.num_controls = ; + // * req.controls = ; - rtn = ldap_transaction(ctx->admin.ldap.conn, req); + //rtn = ldap_transaction(ctx->admin.ldap.conn, req); } { const char *ldif; - struct ldap_message *req; //, *rep; - NTSTATUS rtn; + struct ldb_ldif *ldb_req; + //struct ldap_message *req, *rep; + int rtn; ldif = talloc_asprintf(ctx, "dn: %s\n" "changetype: delete\n", ctx->new_dc.dc_info2.server_dn); - + ldb_req = ldb_ldif_read_string(ldb_ctx,&ldif); + rtn = ldb_delete(ldb_ctx,ctx->new_dc.dc_info2.server_dn); + printf("test_destroy_context(): deleting %s.\n",ctx->new_dc.dc_info2.server_dn); //req = ldap_ldif2msg(ctx, ldif); - req->type = LDAP_TAG_DelRequest; - req->r.DelRequest.dn = ctx->new_dc.dc_info2.ntds_dn; + //req->type = LDAP_TAG_DelRequest; + //req->r.DelRequest.dn = ctx->new_dc.dc_info2.ntds_dn; - rtn = ldap_transaction(ctx->admin.ldap.conn, req); + //rtn = ldap_transaction(ctx->admin.ldap.conn, req); } if (ctx->new_dc.join) { @@ -178,16 +197,12 @@ BOOL ret = True; struct event_context *event = NULL; - printf("test_DsBind():0\n"); - status = dcerpc_pipe_connect_b(ctx, &b->pipe, ctx->drsuapi_binding, DCERPC_DRSUAPI_UUID, DCERPC_DRSUAPI_VERSION, credentials, event); - printf("test_DsBind():1\n"); - if (!NT_STATUS_IS_OK(status)) { printf("Failed to connect to server as a BDC: %s\n", nt_errstr(status)); return False; @@ -242,9 +257,6 @@ struct drsuapi_DsNameString names[1]; BOOL ret = True; - - printf("\ttest_GetInfo():0\n"); - r.in.bind_handle = &ctx->admin.drsuapi.bind_handle; r.in.level = 1; r.in.req.req1.unknown1 = 0x000004e4; @@ -256,13 +268,9 @@ r.in.req.req1.format_offered = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT; r.in.req.req1.format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779; names[0].str = talloc_asprintf(ctx, "%s\\%s", lp_workgroup(), TEST_MACHINE_NAME"$"); - - printf("\ttest_GetInfo():1\n"); - + status = dcerpc_drsuapi_DsCrackNames(ctx->admin.drsuapi.pipe, ctx, &r); - printf("\ttest_GetInfo():2\n"); - if (!NT_STATUS_IS_OK(status)) { const char *errstr = nt_errstr(status); if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) { @@ -275,8 +283,6 @@ return False; } - printf("test_GetInfo():3\n"); - /* = r.out.ctr.ctr1->array[0].dns_domain_name;*/ ctx->new_dc.dc_info2.computer_dn = r.out.ctr.ctr1->array[0].result_name; @@ -302,7 +308,8 @@ ctx->schema_dn = talloc_asprintf(ctx, "CN=Schema,%s", ctx->config_dn); ctx->new_dc.dc_info2.server_dn = talloc_asprintf(ctx, - "CN=%s,CN=Servers,CN=Standardname-des-ersten-Standorts,CN=Sites,CN=Configuration,%s", +// "CN=%s,CN=Servers,CN=Standardname-des-ersten-Standorts,CN=Sites,CN=Configuration,%s", + "CN=%s,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,%s", TEST_MACHINE_NAME, ctx->domain_dn); ctx->new_dc.dc_info2.ntds_dn = talloc_asprintf(ctx, @@ -339,7 +346,7 @@ "userAccountControl: %u\n", ctx->new_dc.dc_info2.computer_dn, UF_SERVER_TRUST_ACCOUNT|UF_TRUSTED_FOR_DELEGATION); - + printf("dn: %s.\n",ctx->new_dc.dc_info2.computer_dn); ldb_req = ldb_ldif_read_string(ldb_ctx,&ldif); // * req = ldap_ldif2msg(ctx, ldif); // * req->type = LDAP_TAG_ModifyRequest; @@ -352,8 +359,7 @@ // * req->r.ModifyRequest.mods->attrib.values->data = UF_SERVER_TRUST_ACCOUNT|UF_TRUSTED_FOR_DELEGATION; // * req->r.ModifyRequest.mods->attrib.values->length = sizeof(req->r.ModifyRequest.mods->attrib.values->data); -// = UF_SERVER_TRUST_ACCOUNT|UF_TRUSTED_FOR_DELEGATION; - +// = UF_SERVER_TRUST_ACCOUNT|UF_TRUSTED_FOR_DELEGATION; rtn = ldb_modify(ldb_ctx,ldb_req->msg); if (rtn != 0) { printf("test_CompleteJoin() ldb_modify() failed: %s.\n", @@ -378,7 +384,7 @@ ctx->new_dc.dc_info2.computer_dn); ldb_req = ldb_ldif_read_string(ldb_ctx,&ldif); - + printf("dn: %s\nserverReference: %s.\n",ctx->new_dc.dc_info2.server_dn,ctx->new_dc.dc_info2.computer_dn); // * req = ldap_ldif2msg(ctx, ldif); // * req->type = LDAP_TAG_AddRequest; // * req.r.AddRequest.dn = ctx->new_dc.dc_info2.server_dn; @@ -398,13 +404,15 @@ // * req.r.AddRequest.attributes.name = 'serverReference'; // * req.r.AddRequest.attributes.num_values = 1; // * req.r.AddRequest.attributes.values = ctx->new_dc.dc_info2.computer_dn; - - rtn = ldb_modify(ldb_ctx,ldb_req->msg); + printf("test\n"); + //rtn = ldb_modify(ldb_ctx,ldb_req->msg); + rtn = ldb_add(ldb_ctx,ldb_req->msg); if (rtn != 0) { - printf("test_CompleteJoin(): ldb_modify() failed: %s.\n", + printf("test_CompleteJoin(): ldb_add() failed: %s.\n", ldb_errstring(ldb_ctx)); return False; } + printf("test2\n"); // rtn = ldap_transaction(ctx->admin.ldap.conn, req); /* add entry CN=NTDS Settings @@ -784,10 +792,7 @@ TALLOC_CTX *mem_ctx; struct DsSyncTest *ctx; int rtn = 0; -// char *url; - char *host; - struct ldap_connection *conn; - NTSTATUS status; + struct ldb_context *ldb_ctx; mem_ctx = talloc_init("torture_rpc_dssync"); ctx = test_create_context(mem_ctx); @@ -795,7 +800,7 @@ // url = talloc_asprintf(mem_ctx, "ldap://%s/",host); // ldb method - struct ldb_context *ldb_ctx; + // * struct ldb_context *ldb_ctx; ldb_ctx = ldb_init(mem_ctx); //printf("ctx->ldap_url: %s.\n",ctx->ldap_url); @@ -835,7 +840,7 @@ //ret &= test_FetchData(ctx); - //test_destroy_context(ctx); + test_destroy_context(ctx,ldb_ctx); return ret; }