summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/tools/ldbadd.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/ldb/tools/ldbadd.c')
-rw-r--r--source4/lib/ldb/tools/ldbadd.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/source4/lib/ldb/tools/ldbadd.c b/source4/lib/ldb/tools/ldbadd.c
index 3eb7cb8de2..92ed29e6b8 100644
--- a/source4/lib/ldb/tools/ldbadd.c
+++ b/source4/lib/ldb/tools/ldbadd.c
@@ -37,7 +37,7 @@
int main(void)
{
static struct ldb_context *ldb;
- struct ldb_message *msg;
+ struct ldb_ldif *ldif;
int ret;
int count=0, failures=0;
const char *ldb_url;
@@ -54,16 +54,23 @@
exit(1);
}
- while ((msg = ldif_read_file(stdin))) {
- ret = ldb_add(ldb, msg);
+ while ((ldif = ldif_read_file(stdin))) {
+
+ if (ldif->changetype != LDB_CHANGETYPE_ADD &&
+ ldif->changetype != LDB_CHANGETYPE_NONE) {
+ fprintf(stderr, "Only CHANGETYPE_ADD records allowed\n");
+ break;
+ }
+
+ ret = ldb_add(ldb, &ldif->msg);
if (ret != 0) {
fprintf(stderr, "ERR: \"%s\" on DN %s\n",
- ldb_errstring(ldb), msg->dn);
+ ldb_errstring(ldb), ldif->msg.dn);
failures++;
} else {
count++;
}
- ldif_read_free(msg);
+ ldif_read_free(ldif);
}
ldb_close(ldb);