svn commit: samba r2891 - in branches/SAMBA_4_0/source/ldap_server:
.
metze at samba.org
metze at samba.org
Sun Oct 10 02:24:43 GMT 2004
Author: metze
Date: 2004-10-10 02:24:42 +0000 (Sun, 10 Oct 2004)
New Revision: 2891
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/ldap_server&rev=2891&nolog=1
Log:
call rootDSE only with LDAP_SEARCH_SCOPE_BASE
this is needed because of the global catalog
metze
Modified:
branches/SAMBA_4_0/source/ldap_server/ldap_backend.c
branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c
Changeset:
Modified: branches/SAMBA_4_0/source/ldap_server/ldap_backend.c
===================================================================
--- branches/SAMBA_4_0/source/ldap_server/ldap_backend.c 2004-10-10 01:59:22 UTC (rev 2890)
+++ branches/SAMBA_4_0/source/ldap_server/ldap_backend.c 2004-10-10 02:24:42 UTC (rev 2891)
@@ -45,9 +45,10 @@
return NT_STATUS_OK;
}
-struct ldapsrv_partition *ldapsrv_get_partition(struct ldapsrv_connection *conn, const char *dn)
+struct ldapsrv_partition *ldapsrv_get_partition(struct ldapsrv_connection *conn, const char *dn, enum ldap_scope scope)
{
- if (strcasecmp("", dn) == 0) {
+ if (scope == LDAP_SEARCH_SCOPE_BASE
+ && strcasecmp("", dn) == 0) {
return conn->service->rootDSE;
}
@@ -87,7 +88,7 @@
DEBUGADD(10, (" basedn: %s", req->basedn));
DEBUGADD(10, (" filter: %s\n", req->filter));
- part = ldapsrv_get_partition(call->conn, req->basedn);
+ part = ldapsrv_get_partition(call->conn, req->basedn, req->scope);
if (!part->ops->Search) {
struct ldap_Result *done;
@@ -118,7 +119,7 @@
DEBUG(10, ("ModifyRequest"));
DEBUGADD(10, (" dn: %s", req->dn));
- part = ldapsrv_get_partition(call->conn, req->dn);
+ part = ldapsrv_get_partition(call->conn, req->dn, LDAP_SEARCH_SCOPE_SUB);
if (!part->ops->Modify) {
return ldapsrv_unwilling(call, 53);
@@ -135,7 +136,7 @@
DEBUG(10, ("AddRequest"));
DEBUGADD(10, (" dn: %s", req->dn));
- part = ldapsrv_get_partition(call->conn, req->dn);
+ part = ldapsrv_get_partition(call->conn, req->dn, LDAP_SEARCH_SCOPE_SUB);
if (!part->ops->Add) {
return ldapsrv_unwilling(call, 53);
@@ -152,7 +153,7 @@
DEBUG(10, ("DelRequest"));
DEBUGADD(10, (" dn: %s", req->dn));
- part = ldapsrv_get_partition(call->conn, req->dn);
+ part = ldapsrv_get_partition(call->conn, req->dn, LDAP_SEARCH_SCOPE_SUB);
if (!part->ops->Del) {
return ldapsrv_unwilling(call, 53);
@@ -170,7 +171,7 @@
DEBUGADD(10, (" dn: %s", req->dn));
DEBUGADD(10, (" newrdn: %s", req->newrdn));
- part = ldapsrv_get_partition(call->conn, req->dn);
+ part = ldapsrv_get_partition(call->conn, req->dn, LDAP_SEARCH_SCOPE_SUB);
if (!part->ops->ModifyDN) {
return ldapsrv_unwilling(call, 53);
@@ -187,7 +188,7 @@
DEBUG(10, ("CompareRequest"));
DEBUGADD(10, (" dn: %s", req->dn));
- part = ldapsrv_get_partition(call->conn, req->dn);
+ part = ldapsrv_get_partition(call->conn, req->dn, LDAP_SEARCH_SCOPE_SUB);
if (!part->ops->Compare) {
return ldapsrv_unwilling(call, 53);
Modified: branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c
===================================================================
--- branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c 2004-10-10 01:59:22 UTC (rev 2890)
+++ branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c 2004-10-10 02:24:42 UTC (rev 2891)
@@ -315,8 +315,7 @@
const char **attrs = NULL;
if (r->scope != LDAP_SEARCH_SCOPE_BASE) {
- count = -1;
- goto no_base_scope;
+ return NT_STATUS_INVALID_PARAMETER;
}
local_ctx = talloc_named(call, 0, "rootdse_Search local memory context");
More information about the samba-cvs
mailing list