Author: metze Date: 2007-02-14 13:35:53 +0000 (Wed, 14 Feb 2007) New Revision: 21335
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21335 Log: add dssync:save_pwd_blobs_dir=path/ option to store the password blobs in files for inspection with ndrdump 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 2007-02-14 13:24:37 UTC (rev 21334) +++ branches/SAMBA_4_0/source/torture/rpc/dssync.c 2007-02-14 13:35:53 UTC (rev 21335) @@ -417,10 +417,15 @@ const DATA_BLOB *gensec_skey, struct drsuapi_DsReplicaObjectListItemEx *cur) { - if (!lp_parm_bool(-1,"dssync","print_pwd_blobs",False)) { + static uint32_t object_id; + const char *save_values_dir; + + if (!lp_parm_bool(-1,"dssync","print_pwd_blobs", false)) { return; } + save_values_dir = lp_parm_string(-1,"dssync","save_pwd_blobs_dir"); + for (; cur; cur = cur->next_object) { const char *dn; struct dom_sid *sid = NULL; @@ -497,13 +502,28 @@ cur->object.identifier, rid, enc_data); if (!dn_printed) { - DEBUG(0,("DN: %s\n", dn)); + object_id++; + DEBUG(0,("DN[%u] %s\n", object_id, dn)); dn_printed = True; } DEBUGADD(0,("ATTR: %s enc.length=%lu plain.length=%lu\n", name, (long)enc_data->length, (long)plain_data.length)); if (plain_data.length) { dump_data(0, plain_data.data, plain_data.length); + if (save_values_dir) { + char *fname; + fname = talloc_asprintf(ctx, "%s/%s%02d", + save_values_dir, + name, object_id); + if (fname) { + bool ok; + ok = file_save(fname, plain_data.data, plain_data.length); + if (!ok) { + DEBUGADD(0,("Failed to save '%s'\n", fname)); + } + } + talloc_free(fname); + } } else { dump_data(0, enc_data->data, enc_data->length); }