From e4cd51e17ef5db8e78ed2d8481b7e4321c975fe5 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 23 Sep 2004 02:14:43 +0000 Subject: r2553: fixed ldbtest so it passes the ldap schema restrictions and thus can be used on the ldap backend (This used to be commit 9f230425a0c926209887006ab1e3fec0998e7961) --- source4/lib/ldb/tools/ldbtest.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/source4/lib/ldb/tools/ldbtest.c b/source4/lib/ldb/tools/ldbtest.c index 96d228c1771..7c240a01d27 100644 --- a/source4/lib/ldb/tools/ldbtest.c +++ b/source4/lib/ldb/tools/ldbtest.c @@ -287,35 +287,28 @@ be indexed */ static void start_test_index(struct ldb_context **ldb) { + const char *base = "ou=Ldb Test,ou=People,o=University of Michigan,c=US"; struct ldb_message msg; - struct ldb_message_element el[1]; - struct ldb_val val[1]; struct ldb_message **res; int ret; printf("Starting index test\n"); + memset(&msg, 0, sizeof(msg)); msg.dn = strdup("@INDEXLIST"); - msg.num_elements = 1; - msg.elements = el; - - el[0].flags = 0; - el[0].name = strdup("@IDXATTR"); - el[0].num_values = 1; - el[0].values = val; - - val[0].data = strdup("test"); - val[0].length = strlen(val[0].data); + 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)); exit(1); } - msg.dn = strdup("test1"); - el[0].name = strdup("test"); - val[0].data = strdup("foo"); - val[0].length = strlen(val[0].data); + memset(&msg, 0, sizeof(msg)); + asprintf(&msg.dn, "cn=%s,%s", "test", base); + 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)); @@ -334,13 +327,13 @@ static void start_test_index(struct ldb_context **ldb) exit(1); } - ret = ldb_search(*ldb, NULL, LDB_SCOPE_SUBTREE, "test=foo", NULL, &res); + ret = ldb_search(*ldb, NULL, LDB_SCOPE_SUBTREE, "uid=test", NULL, &res); if (ret != 1) { printf("Should have found 1 record - found %d\n", ret); exit(1); } - if (ldb_delete(*ldb, "test1") != 0 || + if (ldb_delete(*ldb, msg.dn) != 0 || ldb_delete(*ldb, "@INDEXLIST") != 0) { printf("cleanup failed - %s\n", ldb_errstring(*ldb)); exit(1); -- cgit