summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/tools
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-01-02 07:49:29 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:07:55 -0500
commit1a988ec9af7960616fb4661b20d86ff05146d836 (patch)
tree725eb92b6b97133b23972215f5c69117e29c339c /source4/lib/ldb/tools
parent65f96eba32b93ced0717c2639007bba59da55fa4 (diff)
downloadsamba-1a988ec9af7960616fb4661b20d86ff05146d836.tar.gz
samba-1a988ec9af7960616fb4661b20d86ff05146d836.tar.bz2
samba-1a988ec9af7960616fb4661b20d86ff05146d836.zip
r4474: - converted ldb to use talloc internally
- added gcov flags to Makefile.ldb - expanded ldb test suite to get more coverage (This used to be commit 0ab98f50a7e0fe15347a99e5c29a6590a87729a0)
Diffstat (limited to 'source4/lib/ldb/tools')
-rw-r--r--source4/lib/ldb/tools/ldbadd.c4
-rw-r--r--source4/lib/ldb/tools/ldbedit.c28
-rw-r--r--source4/lib/ldb/tools/ldbmodify.c8
-rw-r--r--source4/lib/ldb/tools/ldbsearch.c2
-rw-r--r--source4/lib/ldb/tools/ldbtest.c33
5 files changed, 39 insertions, 36 deletions
diff --git a/source4/lib/ldb/tools/ldbadd.c b/source4/lib/ldb/tools/ldbadd.c
index 9d19a1db0a..d95036497a 100644
--- a/source4/lib/ldb/tools/ldbadd.c
+++ b/source4/lib/ldb/tools/ldbadd.c
@@ -66,10 +66,10 @@ static int process_file(struct ldb_context *ldb, FILE *f)
break;
}
- ret = ldb_add(ldb, &ldif->msg);
+ ret = ldb_add(ldb, ldif->msg);
if (ret != 0) {
fprintf(stderr, "ERR: \"%s\" on DN %s\n",
- ldb_errstring(ldb), ldif->msg.dn);
+ ldb_errstring(ldb), ldif->msg->dn);
failures++;
} else {
count++;
diff --git a/source4/lib/ldb/tools/ldbedit.c b/source4/lib/ldb/tools/ldbedit.c
index 6cd6ef041b..66b684f4d5 100644
--- a/source4/lib/ldb/tools/ldbedit.c
+++ b/source4/lib/ldb/tools/ldbedit.c
@@ -48,7 +48,7 @@ static void ldif_write_msg(struct ldb_context *ldb,
{
struct ldb_ldif ldif;
ldif.changetype = changetype;
- ldif.msg = *msg;
+ ldif.msg = msg;
ldb_ldif_write_file(ldb, f, &ldif);
}
@@ -60,14 +60,16 @@ static int modify_record(struct ldb_context *ldb,
struct ldb_message *msg1,
struct ldb_message *msg2)
{
- struct ldb_message mod;
+ struct ldb_message *mod;
struct ldb_message_element *el;
unsigned int i;
int count = 0;
- mod.dn = msg1->dn;
- mod.num_elements = 0;
- mod.elements = NULL;
+ mod = ldb_msg_new(ldb);
+
+ mod->dn = msg1->dn;
+ mod->num_elements = 0;
+ mod->elements = NULL;
msg2 = ldb_msg_canonicalize(ldb, msg2);
if (msg2 == NULL) {
@@ -84,7 +86,7 @@ static int modify_record(struct ldb_context *ldb,
continue;
}
- if (ldb_msg_add(ldb, &mod,
+ if (ldb_msg_add(ldb, mod,
&msg2->elements[i],
el?LDB_FLAG_MOD_REPLACE:LDB_FLAG_MOD_ADD) != 0) {
return -1;
@@ -96,7 +98,7 @@ static int modify_record(struct ldb_context *ldb,
for (i=0;i<msg1->num_elements;i++) {
el = ldb_msg_find_element(msg2, msg1->elements[i].name);
if (!el) {
- if (ldb_msg_add_empty(ldb, &mod,
+ if (ldb_msg_add_empty(ldb, mod,
msg1->elements[i].name,
LDB_FLAG_MOD_DELETE) != 0) {
return -1;
@@ -105,18 +107,18 @@ static int modify_record(struct ldb_context *ldb,
}
}
- if (mod.num_elements == 0) {
+ if (mod->num_elements == 0) {
return 0;
}
- if (ldb_modify(ldb, &mod) != 0) {
+ if (ldb_modify(ldb, mod) != 0) {
fprintf(stderr, "failed to modify %s - %s\n",
msg1->dn, ldb_errstring(ldb));
return -1;
}
if (verbose > 0) {
- ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_MODIFY, &mod);
+ ldif_write_msg(ldb, stdout, LDB_CHANGETYPE_MODIFY, mod);
}
return count;
@@ -205,7 +207,7 @@ static int save_ldif(struct ldb_context *ldb,
fprintf(f, "# record %d\n", i+1);
ldif.changetype = LDB_CHANGETYPE_NONE;
- ldif.msg = *msgs[i];
+ ldif.msg = msgs[i];
ldb_ldif_write_file(ldb, f, &ldif);
}
@@ -278,12 +280,12 @@ static int do_edit(struct ldb_context *ldb, struct ldb_message **msgs1, int coun
}
while ((ldif = ldb_ldif_read_file(ldb, f))) {
- msgs2 = ldb_realloc_p(ldb, msgs2, struct ldb_message *, count2+1);
+ msgs2 = talloc_realloc_p(ldb, msgs2, struct ldb_message *, count2+1);
if (!msgs2) {
fprintf(stderr, "out of memory");
return -1;
}
- msgs2[count2++] = &ldif->msg;
+ msgs2[count2++] = ldif->msg;
}
fclose(f);
diff --git a/source4/lib/ldb/tools/ldbmodify.c b/source4/lib/ldb/tools/ldbmodify.c
index 5fabba57b7..3bdb946897 100644
--- a/source4/lib/ldb/tools/ldbmodify.c
+++ b/source4/lib/ldb/tools/ldbmodify.c
@@ -62,18 +62,18 @@ static int process_file(struct ldb_context *ldb, FILE *f)
switch (ldif->changetype) {
case LDB_CHANGETYPE_NONE:
case LDB_CHANGETYPE_ADD:
- ret = ldb_add(ldb, &ldif->msg);
+ ret = ldb_add(ldb, ldif->msg);
break;
case LDB_CHANGETYPE_DELETE:
- ret = ldb_delete(ldb, ldif->msg.dn);
+ ret = ldb_delete(ldb, ldif->msg->dn);
break;
case LDB_CHANGETYPE_MODIFY:
- ret = ldb_modify(ldb, &ldif->msg);
+ ret = ldb_modify(ldb, ldif->msg);
break;
}
if (ret != 0) {
fprintf(stderr, "ERR: \"%s\" on DN %s\n",
- ldb_errstring(ldb), ldif->msg.dn);
+ ldb_errstring(ldb), ldif->msg->dn);
failures++;
} else {
count++;
diff --git a/source4/lib/ldb/tools/ldbsearch.c b/source4/lib/ldb/tools/ldbsearch.c
index fced589572..9041231faf 100644
--- a/source4/lib/ldb/tools/ldbsearch.c
+++ b/source4/lib/ldb/tools/ldbsearch.c
@@ -71,7 +71,7 @@ static int do_search(struct ldb_context *ldb,
printf("# record %d\n", i+1);
ldif.changetype = LDB_CHANGETYPE_NONE;
- ldif.msg = *msgs[i];
+ ldif.msg = msgs[i];
ldb_ldif_write_file(ldb, stdout, &ldif);
}
diff --git a/source4/lib/ldb/tools/ldbtest.c b/source4/lib/ldb/tools/ldbtest.c
index 645bc93fd3..01fa1b8ed7 100644
--- a/source4/lib/ldb/tools/ldbtest.c
+++ b/source4/lib/ldb/tools/ldbtest.c
@@ -130,7 +130,7 @@ static void add_records(struct ldb_context *ldb,
free(name);
free(msg.dn);
free(vals[1][0].data);
- ldb_free(ldb, vals[2][0].data);
+ talloc_free(vals[2][0].data);
free(vals[3][0].data);
free(vals[4][0].data);
}
@@ -288,7 +288,7 @@ be indexed
*/
static void start_test_index(struct ldb_context **ldb)
{
- struct ldb_message msg;
+ struct ldb_message *msg;
struct ldb_message **res;
int ret;
@@ -296,24 +296,25 @@ static void start_test_index(struct ldb_context **ldb)
ldb_delete(*ldb, "@INDEXLIST");
- memset(&msg, 0, sizeof(msg));
- msg.dn = strdup("@INDEXLIST");
- ldb_msg_add_string(*ldb, &msg, "@IDXATTR", strdup("uid"));
+ msg = ldb_msg_new(NULL);
+
+ msg->dn = strdup("@INDEXLIST");
+ ldb_msg_add_string(*ldb, msg, "@IDXATTR", strdup("uid"));
- if (ldb_add(*ldb, &msg) != 0) {
- printf("Add of %s failed - %s\n", msg.dn, ldb_errstring(*ldb));
+ if (ldb_add(*ldb, msg) != 0) {
+ printf("Add of %s failed - %s\n", msg->dn, ldb_errstring(*ldb));
exit(1);
}
- memset(&msg, 0, sizeof(msg));
- asprintf(&msg.dn, "cn=%s,%s", "test", base_dn);
- ldb_msg_add_string(*ldb, &msg, "cn", strdup("test"));
- ldb_msg_add_string(*ldb, &msg, "sn", strdup("test"));
- ldb_msg_add_string(*ldb, &msg, "uid", strdup("test"));
- ldb_msg_add_string(*ldb, &msg, "objectClass", strdup("OpenLDAPperson"));
+ memset(msg, 0, sizeof(*msg));
+ asprintf(&msg->dn, "cn=%s,%s", "test", base_dn);
+ ldb_msg_add_string(*ldb, msg, "cn", strdup("test"));
+ ldb_msg_add_string(*ldb, msg, "sn", strdup("test"));
+ ldb_msg_add_string(*ldb, msg, "uid", strdup("test"));
+ ldb_msg_add_string(*ldb, msg, "objectClass", strdup("OpenLDAPperson"));
- if (ldb_add(*ldb, &msg) != 0) {
- printf("Add of %s failed - %s\n", msg.dn, ldb_errstring(*ldb));
+ if (ldb_add(*ldb, msg) != 0) {
+ printf("Add of %s failed - %s\n", msg->dn, ldb_errstring(*ldb));
exit(1);
}
@@ -335,7 +336,7 @@ static void start_test_index(struct ldb_context **ldb)
exit(1);
}
- if (ldb_delete(*ldb, msg.dn) != 0 ||
+ if (ldb_delete(*ldb, msg->dn) != 0 ||
ldb_delete(*ldb, "@INDEXLIST") != 0) {
printf("cleanup failed - %s\n", ldb_errstring(*ldb));
exit(1);