]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/search.c
Add comments
[openldap] / servers / slapd / search.c
index d37d31653da3cdabae886a8041233d3df52d214e..086e924137d72af0b60ef1a82b200d7ec3919a21 100644 (file)
@@ -202,6 +202,12 @@ do_search(
                Entry *entry = NULL;
 
                if ( strcasecmp( nbase, LDAP_ROOT_DSE ) == 0 ) {
+#ifdef LDAP_CONNECTIONLESS
+                       /* Ignore LDAPv2 CLDAP DSE queries */
+                       if (op->o_protocol==LDAP_VERSION2 && conn->c_is_udp) {
+                               goto return_results;
+                       }
+#endif
                        /* check restrictions */
                        rc = backend_check_restrictions( NULL, conn, op, NULL, &text ) ;
                        if( rc != LDAP_SUCCESS ) {
@@ -262,9 +268,13 @@ do_search(
         * if we don't hold it.
         */
        if ( (be = select_backend( nbase, manageDSAit )) == NULL ) {
+               struct berval **ref = referral_rewrite( default_referral,
+                       NULL, base, scope );
+
                send_ldap_result( conn, op, rc = LDAP_REFERRAL,
-                       NULL, NULL, default_referral, NULL );
+                       NULL, NULL, ref ? ref : default_referral, NULL );
 
+               ber_bvecfree( ref );
                goto return_results;
        }