svn commit: samba r20438 - in branches/SAMBA_4_0/source/torture/libnet: .

metze at samba.org metze at samba.org
Sun Dec 31 12:32:16 GMT 2006


Author: metze
Date: 2006-12-31 12:32:15 +0000 (Sun, 31 Dec 2006)
New Revision: 20438

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

Log:
- bail out on conversation errors
- create a valid ldb_message
- dump the ldb_message if --option="become dc:dump objects=yes" is passed to smbtorture

metze
Modified:
   branches/SAMBA_4_0/source/torture/libnet/libnet_BecomeDC.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_BecomeDC.c
===================================================================
--- branches/SAMBA_4_0/source/torture/libnet/libnet_BecomeDC.c	2006-12-31 12:30:06 UTC (rev 20437)
+++ branches/SAMBA_4_0/source/torture/libnet/libnet_BecomeDC.c	2006-12-31 12:32:15 UTC (rev 20438)
@@ -37,6 +37,8 @@
 	struct cli_credentials *machine_account;
 	struct dsdb_schema *schema;
 
+	struct ldb_context *ldb;
+
 	struct {
 		struct drsuapi_DsReplicaObjectListItemEx *first_object;
 		struct drsuapi_DsReplicaObjectListItemEx *last_object;
@@ -99,16 +101,35 @@
 {
 	WERROR status;
 	uint32_t i;
+	struct ldb_message *msg;
 
-	for (i=0; i < obj->object.attribute_ctr.num_attributes; i++) {
+	msg = ldb_msg_new(mem_ctx);
+	W_ERROR_HAVE_NO_MEMORY(msg);
+
+	msg->dn			= ldb_dn_new(msg, s->ldb, obj->object.identifier->dn);
+	W_ERROR_HAVE_NO_MEMORY(msg->dn);
+
+	msg->num_elements	= obj->object.attribute_ctr.num_attributes;
+	msg->elements		= talloc_array(msg, struct ldb_message_element,
+					       msg->num_elements);
+	W_ERROR_HAVE_NO_MEMORY(msg->elements);
+
+	for (i=0; i < msg->num_elements; i++) {
 		status = dsdb_attribute_drsuapi_to_ldb(s->schema,
 						       &obj->object.attribute_ctr.attributes[i],
-						       mem_ctx, NULL);
-#if 0 /* ignore the error till all attribute syntaxes have a valid implementation */
+						       msg->elements, &msg->elements[i]);
 		W_ERROR_NOT_OK_RETURN(status);
-#endif
 	}
 
+	if (lp_parm_bool(-1, "become dc", "dump objects", False)) {
+		struct ldb_ldif ldif;
+		fprintf(stdout, "#\n");
+		ldif.changetype = LDB_CHANGETYPE_NONE;
+		ldif.msg = msg;
+		ldb_ldif_write_file(s->ldb, stdout, &ldif);
+	}
+
+	*_msg = msg;
 	return WERR_OK;
 }
 
@@ -335,6 +356,8 @@
 	s->ctx = libnet_context_init(event_context_init(s));
 	s->ctx->cred = cmdline_credentials;
 
+	s->ldb = ldb_init(s);
+
 	ZERO_STRUCT(b);
 	b.in.domain_dns_name		= torture_join_dom_dns_name(s->tj);
 	b.in.domain_netbios_name	= torture_join_dom_netbios_name(s->tj);



More information about the samba-cvs mailing list