]> git.sur5r.net Git - openldap/commitdiff
bail out is now the default; use noSuchAttribute as error code, as suggested by Kurt
authorPierangelo Masarati <ando@openldap.org>
Wed, 29 Jan 2003 17:01:04 +0000 (17:01 +0000)
committerPierangelo Masarati <ando@openldap.org>
Wed, 29 Jan 2003 17:01:04 +0000 (17:01 +0000)
servers/slapd/add.c

index e5d7a1105e2268c0a603daec1a304ab6320fa8f4..952c6b4610d2ed8fe2774daaa754a8ab14c6e262 100644 (file)
@@ -238,12 +238,11 @@ do_add( Connection *conn, Operation *op )
                }
 
                if (mod == NULL) {
+#define BAILOUT
 #ifdef BAILOUT
-                       /* for now, bail out; we might end up
-                        * adding the missing value, as iPlanet
-                        * allegedly does */
+                       /* bail out */
                        send_ldap_result( conn, op, 
-                                       rc = LDAP_CONSTRAINT_VIOLATION,
+                                       rc = LDAP_NO_SUCH_ATTRIBUTE,
                                        NULL,
                                        "attribute in RDN not listed in entry", 
                                        NULL, NULL );
@@ -252,6 +251,7 @@ do_add( Connection *conn, Operation *op )
 #else /* ! BAILOUT */
                        struct berval   bv;
 
+                       /* add attribute type and value to modlist */
                        mod  = (Modifications *) ch_malloc( sizeof(Modifications) );
                
                        mod->sml_op = LDAP_MOD_ADD;
@@ -299,15 +299,18 @@ do_add( Connection *conn, Operation *op )
                /* not found? */
                if (mod->sml_bvalues[ i ].bv_val == NULL) {
 #ifdef BAILOUT
+                       /* bailout */
                        send_ldap_result( conn, op, 
-                                       rc = LDAP_CONSTRAINT_VIOLATION,
+                                       rc = LDAP_NO_SUCH_ATTRIBUTE,
                                        NULL,
                                        "value in RDN not listed in entry", 
                                        NULL, NULL );
                        goto done;
+
 #else /* ! BAILOUT */
                        struct berval   bv;
 
+                       /* add attribute type and value to modlist */
                        ber_dupbv( &bv, &rdn[ 0 ][ a_cnt ]->la_value );
                        ber_bvarray_add( &mod->sml_bvalues, &bv );
                        continue;