]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/backend.c
liberally accept many LDAPv2/LDAPv3 stuff in DN (quoted parts, ';' as rdn separator...
[openldap] / servers / slapd / backend.c
index feac0e595d5df64946a5cdb87391df2519f73d98..85ce0983744751b6114445373d94cdaa05739039 100644 (file)
@@ -525,7 +525,7 @@ select_backend(
                        }
 
                        
-                       if ( len && len < dnlen && !DN_SEPARATOR( dn[(dnlen-len)-1] ) ) {
+                       if ( len && len < dnlen && ( !DN_SEPARATOR( dn[(dnlen-len)-1] ) || DN_ESCAPE( dn[(dnlen-len)-2] ) ) ) {
                                /* make sure we have a separator */
                                continue;
                        }
@@ -584,6 +584,24 @@ be_isroot( Backend *be, const char *ndn )
        return(rc);
 }
 
+int
+be_isupdate( Backend *be, const char *ndn )
+{
+       int rc;
+
+       if ( ndn == NULL || *ndn == '\0' ) {
+               return( 0 );
+       }
+
+       if ( be->be_update_ndn == NULL || *be->be_update_ndn == '\0' ) {
+               return( 0 );
+       }
+
+       rc = strcmp( be->be_update_ndn, ndn ) ? 0 : 1;
+
+       return(rc);
+}
+
 char *
 be_root_dn( Backend *be )
 {