#include <ac/string.h>
#include <ac/socket.h>
+#include "ldap_pvt.h"
#include "slap.h"
goto return_results;
}
- if( dn_normalize( base ) == NULL ) {
+ nbase = ch_strdup( base );
+
+ if( dn_normalize( nbase ) == NULL ) {
send_ldap_result( conn, op, LDAP_INVALID_DN_SYNTAX,
NULL, "invalid DN", NULL, NULL );
rc = -1;
"conn=%ld op=%d SRCH base=\"%s\" scope=%d filter=\"%s\"\n",
op->o_connid, op->o_opid, base, scope, fstr );
- nbase = ch_strdup( base );
- ldap_pvt_str2upper( nbase );
-
if ( scope == LDAP_SCOPE_BASE ) {
#if defined( SLAPD_MONITOR_DN )
if ( strcmp( nbase, SLAPD_MONITOR_DN ) == 0 ) {
goto return_results;
}
+ /* make sure this backend recongizes critical controls */
+ rc = backend_check_controls( be, conn, op ) ;
+
+ if( rc != LDAP_SUCCESS ) {
+ send_ldap_result( conn, op, rc,
+ NULL, NULL, NULL, NULL );
+ }
+
/* deref the base if needed */
nbase = suffix_alias( be, nbase );