[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Unwarranted referrals (Was: Bugs?)
I wrote:
> slapd returns "partial results and referral" even when no default
> referral has been configured in the server.
>
> $ ldapsearch -b c=ZZ "objectclass=*"
> ldap_bind: Partial results and referral received
>
> So, a number of `LDAP_PARTIAL_RESULTS' in servers/slapd/ should be
> reduced to something like this:
>
> ((default_referral && *default_referral)
> ? LDAP_PARTIAL_RESULTS
> : LDAP_NO_SUCH_OBJECT)
Well, that was easy enough:
Index: ldap/servers/slapd/bind.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/bind.c,v
retrieving revision 1.1.3.1
diff -u -2 -r1.1.3.1 bind.c
--- bind.c 1998/08/08 22:43:13 1.1.3.1
+++ bind.c 1998/09/18 15:22:57
@@ -145,7 +145,10 @@
if ( cred.bv_len == 0 ) {
send_ldap_result( conn, op, LDAP_SUCCESS, NULL, NULL );
- } else {
+ } else if ( default_referral && *default_referral ) {
send_ldap_result( conn, op, LDAP_PARTIAL_RESULTS, NULL,
default_referral );
+ } else {
+ send_ldap_result( conn, op, LDAP_INVALID_CREDENTIALS,
+ NULL, default_referral );
}
return;
Index: ldap/servers/slapd/result.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/result.c,v
retrieving revision 1.4
diff -u -2 -r1.4 result.c
--- result.c 1998/08/21 04:33:42 1.4
+++ result.c 1998/09/18 15:22:57
@@ -41,4 +41,7 @@
unsigned long tag, bytes;
+ if ( err == LDAP_PARTIAL_RESULTS && (text == NULL || *text == '\0') )
+ err = LDAP_NO_SUCH_OBJECT;
+
Debug( LDAP_DEBUG_TRACE, "send_ldap_result %d:%s:%s\n", err, matched ?
matched : "", text ? text : "" );
--
Hallvard