svn commit: samba r10252 - in branches/SAMBA_4_0/source:
ldap_server nbt_server/wins scripting/ejs
tridge at samba.org
tridge at samba.org
Fri Sep 16 03:18:50 GMT 2005
Author: tridge
Date: 2005-09-16 03:18:49 +0000 (Fri, 16 Sep 2005)
New Revision: 10252
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10252
Log:
a recent checkin from simo changed the handling of BASE and SUBTREE
searches in ldb to be more ldap compliant, but broke the wins server
and the ejs ldb code. This fixes those up so 'make test' passes again.
Modified:
branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c
branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c
Changeset:
Modified: branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c
===================================================================
--- branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c 2005-09-15 23:10:07 UTC (rev 10251)
+++ branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c 2005-09-16 03:18:49 UTC (rev 10252)
@@ -294,7 +294,8 @@
attrs[j] = NULL;
}
- count = ldb_search(ldb, NULL, 0, "dn=cn=rootDSE", attrs, &res);
+ count = ldb_search(ldb, ldb_dn_explode(local_ctx, "cn=rootDSE"), 0,
+ NULL, attrs, &res);
talloc_steal(local_ctx, res);
if (count == 1) {
Modified: branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c 2005-09-15 23:10:07 UTC (rev 10251)
+++ branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c 2005-09-16 03:18:49 UTC (rev 10252)
@@ -87,25 +87,21 @@
/*
return a DN for a nbt_name
*/
-static char *winsdb_dn(TALLOC_CTX *mem_ctx, struct nbt_name *name)
+static struct ldb_dn *winsdb_dn(TALLOC_CTX *mem_ctx, struct nbt_name *name)
{
- char *ret = talloc_asprintf(mem_ctx, "type=%02x", name->type);
- if (ret == NULL) {
- return ret;
+ struct ldb_dn *dn;
+
+ dn = ldb_dn_string_compose(mem_ctx, NULL, "type=%02x", name->type);
+ if (dn == NULL) {
+ return NULL;
}
- if (name->name && *name->name) {
- ret = talloc_asprintf_append(ret, ",name=%s", name->name);
+ if (dn && name->name && *name->name) {
+ dn = ldb_dn_string_compose(mem_ctx, dn, "name=%s", name->name);
}
- if (ret == NULL) {
- return ret;
+ if (dn && name->scope && *name->scope) {
+ dn = ldb_dn_string_compose(mem_ctx, dn, "scope=%s", name->scope);
}
- if (name->scope && *name->scope) {
- ret = talloc_asprintf_append(ret, ",scope=%s", name->scope);
- }
- if (ret == NULL) {
- return ret;
- }
- return ret;
+ return dn;
}
/*
@@ -119,14 +115,11 @@
struct winsdb_record *rec;
struct ldb_message_element *el;
TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
- const char *expr;
int i;
- expr = talloc_asprintf(tmp_ctx, "dn=%s", winsdb_dn(tmp_ctx, name));
- if (expr == NULL) goto failed;
-
/* find the record in the WINS database */
- ret = ldb_search(winssrv->wins_db, NULL, LDB_SCOPE_ONELEVEL, expr, NULL, &res);
+ ret = ldb_search(winssrv->wins_db, winsdb_dn(tmp_ctx, name), LDB_SCOPE_BASE,
+ NULL, NULL, &res);
if (res != NULL) {
talloc_steal(tmp_ctx, res);
}
@@ -184,7 +177,7 @@
struct ldb_message *msg = ldb_msg_new(mem_ctx);
if (msg == NULL) goto failed;
- msg->dn = ldb_dn_explode(msg, winsdb_dn(msg, rec->name));
+ msg->dn = winsdb_dn(msg, rec->name);
if (msg->dn == NULL) goto failed;
ret |= ldb_msg_add_fmt(ldb, msg, "objectClass", "wins");
ret |= ldb_msg_add_fmt(ldb, msg, "active", "%u", rec->state);
@@ -276,7 +269,7 @@
winsdb_remove_version(winssrv, rec->version);
- dn = ldb_dn_explode(tmp_ctx, winsdb_dn(tmp_ctx, rec->name));
+ dn = winsdb_dn(tmp_ctx, rec->name);
if (dn == NULL) goto failed;
ret = ldb_delete(ldb, dn);
Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c 2005-09-15 23:10:07 UTC (rev 10251)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c 2005-09-16 03:18:49 UTC (rev 10252)
@@ -412,6 +412,7 @@
mprSetVar(ldb, "SCOPE_BASE", mprCreateNumberVar(LDB_SCOPE_BASE));
mprSetVar(ldb, "SCOPE_ONE", mprCreateNumberVar(LDB_SCOPE_ONELEVEL));
mprSetVar(ldb, "SCOPE_SUBTREE", mprCreateNumberVar(LDB_SCOPE_SUBTREE));
+ mprSetVar(ldb, "SCOPE_DEFAULT", mprCreateNumberVar(LDB_SCOPE_DEFAULT));
return 0;
}
More information about the samba-cvs
mailing list