#include "includes.h"
+static int verbose;
+
+/*
+ debug routine
+*/
+static void ldif_write_msg(struct ldb_context *ldb,
+ FILE *f,
+ enum ldb_changetype changetype,
+ struct ldb_message *msg)
+{
+ struct ldb_ldif ldif;
+ ldif.changetype = changetype;
+ ldif.msg = *msg;
+ ldb_ldif_write_file(ldb, f, &ldif);
+}
+
/*
modify a database record so msg1 becomes msg2
returns the number of modified elements
return -1;
}
+ if (verbose > 0) {
+ ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_MODIFY, &mod);
+ }
+
return count;
}
msgs2[i]->dn, ldb_errstring(ldb));
return -1;
}
+ if (verbose > 0) {
+ ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_ADD, msgs2[i]);
+ }
adds++;
} else {
if (modify_record(ldb, msg, msgs2[i]) > 0) {
msgs1[i]->dn, ldb_errstring(ldb));
return -1;
}
+ if (verbose > 0) {
+ ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_DELETE, msgs1[i]);
+ }
deletes++;
}
}
editor = "vi";
}
- while ((opt = getopt(argc, argv, "hab:e:H:s:")) != EOF) {
+ while ((opt = getopt(argc, argv, "hab:e:H:s:v")) != EOF) {
switch (opt) {
case 'b':
basedn = optarg;
expression = "(|(objectclass=*)(dn=*))";
break;
+ case 'v':
+ verbose++;
+ break;
+
case 'h':
default:
usage();