]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
Add improved slurpd friendly code from HEAD
authorKurt Zeilenga <kurt@openldap.org>
Sat, 19 Jan 2002 08:23:14 +0000 (08:23 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sat, 19 Jan 2002 08:23:14 +0000 (08:23 +0000)
CHANGES
build/version
servers/slapd/add.c

diff --git a/CHANGES b/CHANGES
index b42f9bec92ccc40b1411b318ea49920311ef5fa3..5cbd85d75a268952471a4905a963c317b74107bc 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,9 @@
 OpenLDAP 2.0 Change Log
 
+OpenLDAP 2.0.22 Engineering
+       Updated slapd slurpd friendly code
+       Fixed slapd passwd modify referral bug
+
 OpenLDAP 2.0.21 Release
        Fix slapd empty string indexing/filtering handling (ITS#1507)
        Changed slapd ACL selfwrite replace logic (ITS#1530)
index cbf097f72729ca76ded526b6d8957bf1d4639b28..5f52e672d8d4c6a9b5c2a18e58209b8efbc3df3f 100644 (file)
@@ -1 +1 @@
-2.0.21-Release
+2.0.22-Engineering
index 3472d68b6389583130a8e2bd708b45392343f540..b94d025a5cbbbffcc17b1eb74d198a273a676b9b 100644 (file)
@@ -28,6 +28,7 @@
 static int slap_mods2entry(
        Modifications *mods,
        Entry **e,
+       int repl_user,
        const char **text );
 
 int
@@ -233,7 +234,7 @@ do_add( Connection *conn, Operation *op )
                                }
                        }
 
-                       rc = slap_mods2entry( mods, &e, &text );
+                       rc = slap_mods2entry( mods, &e, repl_user, &text );
                        if( rc != LDAP_SUCCESS ) {
                                send_ldap_result( conn, op, rc,
                                        NULL, text, NULL, NULL );
@@ -280,6 +281,7 @@ done:
 static int slap_mods2entry(
        Modifications *mods,
        Entry **e,
+       int repl_user,
        const char **text )
 {
        Attribute **tail = &(*e)->e_attrs;
@@ -298,6 +300,11 @@ static int slap_mods2entry(
 #ifdef SLURPD_FRIENDLY
                        ber_len_t i,j;
 
+                       if( !repl_user ) {
+                               *text = "attribute provided more than once";
+                               return LDAP_TYPE_OR_VALUE_EXISTS;
+                       }
+
                        for( i=0; attr->a_vals[i]; i++ ) {
                                /* count them */
                        }
@@ -310,6 +317,7 @@ static int slap_mods2entry(
                                sizeof( struct berval * ) * (i+j) );
 
                        /* should check for duplicates */
+
                        AC_MEMCPY( &attr->a_vals[i], mods->sml_bvalues,
                                sizeof( struct berval * ) * j );