]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/dn.c
reject registrations when back-monitor is not configured
[openldap] / servers / slapd / dn.c
index 24bc185ff5376d1ab4aab97ddf3ff12948740920..3326ba930936c13663d751e4940884675d6ed591 100644 (file)
@@ -73,7 +73,12 @@ LDAPRDN_validate( LDAPRDN rdn )
 
                        rc = slap_bv2ad( &ava->la_attr, &ad, &text );
                        if ( rc != LDAP_SUCCESS ) {
-                               return LDAP_INVALID_SYNTAX;
+                               rc = slap_bv2undef_ad( &ava->la_attr,
+                                       &ad, &text,
+                                       SLAP_AD_PROXIED|SLAP_AD_NOINSERT );
+                               if ( rc != LDAP_SUCCESS ) {
+                                       return LDAP_INVALID_SYNTAX;
+                               }
                        }
 
                        ava->la_private = ( void * )ad;
@@ -132,7 +137,12 @@ LDAPDN_validate( LDAPDN dn )
 
                                rc = slap_bv2ad( &ava->la_attr, &ad, &text );
                                if ( rc != LDAP_SUCCESS ) {
-                                       return LDAP_INVALID_SYNTAX;
+                                       rc = slap_bv2undef_ad( &ava->la_attr,
+                                               &ad, &text,
+                                               SLAP_AD_PROXIED|SLAP_AD_NOINSERT );
+                                       if ( rc != LDAP_SUCCESS ) {
+                                               return LDAP_INVALID_SYNTAX;
+                                       }
                                }
 
                                ava->la_private = ( void * )ad;
@@ -344,7 +354,12 @@ LDAPRDN_rewrite( LDAPRDN rdn, unsigned flags, void *ctx )
 
                        rc = slap_bv2ad( &ava->la_attr, &ad, &text );
                        if ( rc != LDAP_SUCCESS ) {
-                               return LDAP_INVALID_SYNTAX;
+                               rc = slap_bv2undef_ad( &ava->la_attr,
+                                       &ad, &text,
+                                       SLAP_AD_PROXIED|SLAP_AD_NOINSERT );
+                               if ( rc != LDAP_SUCCESS ) {
+                                       return LDAP_INVALID_SYNTAX;
+                               }
                        }
                        
                        ava->la_private = ( void * )ad;
@@ -469,7 +484,12 @@ LDAPDN_rewrite( LDAPDN dn, unsigned flags, void *ctx )
 
                                rc = slap_bv2ad( &ava->la_attr, &ad, &text );
                                if ( rc != LDAP_SUCCESS ) {
-                                       return LDAP_INVALID_SYNTAX;
+                                       rc = slap_bv2undef_ad( &ava->la_attr,
+                                               &ad, &text,
+                                               SLAP_AD_PROXIED|SLAP_AD_NOINSERT );
+                                       if ( rc != LDAP_SUCCESS ) {
+                                               return LDAP_INVALID_SYNTAX;
+                                       }
                                }
                                
                                ava->la_private = ( void * )ad;
@@ -996,7 +1016,7 @@ dnRelativeMatch(
                                        asserted->bv_val, 
                                        asserted->bv_len );
                        } else {
-                               return 1;
+                               match = 1;
                        }
                }
 
@@ -1022,7 +1042,7 @@ dnRelativeMatch(
                                        asserted->bv_val, 
                                        asserted->bv_len );
                        } else {
-                               return 1;
+                               match = 1;
                        }
                }
 
@@ -1049,7 +1069,7 @@ dnRelativeMatch(
                                        match = dnIsOneLevelRDN( &rdn ) ? 0 : 1;
                                }
                        } else {
-                               return 1;
+                               match = 1;
                        }
                }