]> git.sur5r.net Git - openldap/commitdiff
Always call modification postoperation plugins even if a
authorLuke Howard <lukeh@openldap.org>
Thu, 3 Jul 2003 23:17:54 +0000 (23:17 +0000)
committerLuke Howard <lukeh@openldap.org>
Thu, 3 Jul 2003 23:17:54 +0000 (23:17 +0000)
preoperation plugin has removed all modifications and
thus there are none to pass to the backend.

Accept SSF as a valid parameter block value.

Fix completely broken slapi_access_allowed()

servers/slapd/modify.c
servers/slapd/slapi/slapi_pblock.c
servers/slapd/slapi/slapi_utils.c

index 0ca45624ca3d25e0c85180826084c087a00cb5ec..589c4c41942dd425a6c9b9889f5b4c49301e4925 100644 (file)
@@ -374,12 +374,14 @@ do_modify(
         * attribute types were included in the modification request,
         * then slapi_x_ldapmods2modifications() above will return
         * NULL).
+        *
+        * However, the post-operation plugin should still be 
+        * called.
         */
        if ( modlist == NULL ) {
                rs->sr_err = LDAP_SUCCESS;
                send_ldap_result( op, rs );
-               goto cleanup;
-       }
+       } else {
 #endif /* defined( LDAP_SLAPI ) */
 
        /*
@@ -478,6 +480,8 @@ do_modify(
        }
 
 #if defined( LDAP_SLAPI )
+       } /* modlist != NULL */
+
        if ( doPluginFNs( op->o_bd, SLAPI_PLUGIN_POST_MODIFY_FN, pb ) < 0 ) {
 #ifdef NEW_LOGGING
                LDAP_LOG( OPERATION, INFO, "do_modify: modify postoperation plugins "
index 5ddd3fb8d8e215696eb0f2bcd56fcc2136005031..dc0897d146d5daa434b761372c8a628f5e77b1ac 100644 (file)
@@ -44,6 +44,7 @@ isOkNetscapeParam( int param )
        case SLAPI_X_CONN_IS_UDP:
        case SLAPI_X_CONN_CLIENTPATH:
        case SLAPI_X_CONN_SERVERPATH:
+       case SLAPI_X_CONN_SSF:
        case SLAPI_IBM_CONN_DN_ALT:
        case SLAPI_IBM_CONN_DN_ORIG:
        case SLAPI_IBM_GSSAPI_CONTEXT:
index 4b61808a7c0fdfc28a2d7e7eb4dbe00e49ed78ee..a8230f0b82ce07b7da6c88ce32715d5d0601dea4 100644 (file)
@@ -3085,14 +3085,14 @@ void slapi_valueset_set_valueset(Slapi_ValueSet *vs1, const Slapi_ValueSet *vs2)
 int slapi_access_allowed( Slapi_PBlock *pb, Slapi_Entry *e, char *attr,
        struct berval *val, int access )
 {
-#ifdef LDAPI_SLAPI
+#ifdef LDAP_SLAPI
        Backend *be;
        Connection *conn;
        Operation *op;
        int ret;
        slap_access_t slap_access;
        AttributeDescription *ad = NULL;
-       char *text;
+       const char *text;
 
        ret = slap_str2ad( attr, &ad, &text );
        if ( ret != LDAP_SUCCESS ) {
@@ -3132,7 +3132,7 @@ int slapi_access_allowed( Slapi_PBlock *pb, Slapi_Entry *e, char *attr,
                return LDAP_PARAM_ERROR;
        }
 
-       ret = access_allowed( be, conn, op, e, desc, val, slap_access, NULL );
+       ret = access_allowed( op, e, ad, val, slap_access, NULL );
 
        return ret ? LDAP_SUCCESS : LDAP_INSUFFICIENT_ACCESS;
 #else