svn commit: samba r10988 - in branches/SAMBA_4_0/source/torture/rpc: .

metze at samba.org metze at samba.org
Fri Oct 14 06:58:40 GMT 2005


Author: metze
Date: 2005-10-14 06:58:39 +0000 (Fri, 14 Oct 2005)
New Revision: 10988

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

Log:
print out the password blobs, with

--option="dssync:print_pwd_blobs=yes"

metze
Modified:
   branches/SAMBA_4_0/source/torture/rpc/dssync.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/dssync.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/dssync.c	2005-10-14 06:12:05 UTC (rev 10987)
+++ branches/SAMBA_4_0/source/torture/rpc/dssync.c	2005-10-14 06:58:39 UTC (rev 10988)
@@ -269,7 +269,62 @@
 	return ret;
 }
 
+static void test_analyse_objects(struct DsSyncTest *ctx,
+				 struct drsuapi_DsReplicaObjectListItemEx *cur)
+{
+	if (!lp_parm_bool(-1,"dssync","print_pwd_blobs",False)) {
+		return;	
+	}
 
+	for (; cur; cur = cur->next_object) {
+		const char *dn;
+		BOOL dn_printed = False;
+		uint32_t i;
+
+		if (!cur->object.identifier) continue;
+
+		dn = cur->object.identifier->dn;
+
+		for (i=0; i < cur->object.attribute_ctr.num_attributes; i++) {
+			const char *name = NULL;
+			DATA_BLOB *data = NULL;
+			struct drsuapi_DsReplicaAttribute *attr;
+			attr = &cur->object.attribute_ctr.attributes[i];
+
+			switch (attr->attid) {
+			case DRSUAPI_ATTRIBUTE_dBCSPwd:
+				name	= "dBCSPwd";
+				break;
+			case DRSUAPI_ATTRIBUTE_unicodePwd:
+				name	= "unicodePwd";
+				break;
+			case DRSUAPI_ATTRIBUTE_ntPwdHistory:
+				name	= "ntPwdHistory";
+				break;
+			case DRSUAPI_ATTRIBUTE_lmPwdHistory:
+				name	= "lmPwdHistory";
+				break;
+			default:
+				continue;
+			}
+
+			if (attr->value_ctr.data_blob.num_values != 1) continue;
+
+			if (!attr->value_ctr.data_blob.values[0].data) continue;
+
+			data = attr->value_ctr.data_blob.values[0].data;
+
+			if (!dn_printed) {
+				DEBUG(0,("DN: %s\n", dn));
+				dn_printed = True;
+			}
+			DEBUGADD(0,("ATTR: %s data_blob.length=%u\n",
+				    name, data->length));
+			dump_data(0,data->data, data->length);
+		}
+	}
+}
+
 static BOOL test_FetchData(struct DsSyncTest *ctx)
 {
 	NTSTATUS status;
@@ -419,6 +474,8 @@
 					ctr6->new_highwatermark.tmp_highest_usn,
 					ctr6->new_highwatermark.highest_usn));
 
+				test_analyse_objects(ctx, ctr6->first_object);
+
 				if (ctr6->new_highwatermark.tmp_highest_usn > ctr6->new_highwatermark.highest_usn) {
 					r.in.req.req8.highwatermark = ctr6->new_highwatermark;
 					continue;



More information about the samba-cvs mailing list