]> git.sur5r.net Git - openldap/commitdiff
process callbacks first; they are supposed to remove modifications they successfully...
authorPierangelo Masarati <ando@openldap.org>
Sat, 5 Aug 2006 15:51:13 +0000 (15:51 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sat, 5 Aug 2006 15:51:13 +0000 (15:51 +0000)
servers/slapd/back-monitor/entry.c

index a7b83d489fb9be3175b0d44e4e468e67a32ca858..3a2377489bb10613aeee8762347b30f09436b986 100644 (file)
@@ -42,11 +42,7 @@ monitor_entry_update(
 
        mp = ( monitor_entry_t * )e->e_private;
 
-       if ( mp->mp_info && mp->mp_info->mss_update ) {
-               rc = mp->mp_info->mss_update( op, rs, e );
-       }
-
-       if ( rc == SLAP_CB_CONTINUE && mp->mp_cb ) {
+       if ( mp->mp_cb ) {
                struct monitor_callback_t       *mc;
 
                for ( mc = mp->mp_cb; mc; mc = mc->mc_next ) {
@@ -59,6 +55,10 @@ monitor_entry_update(
                }
        }
 
+       if ( rc == SLAP_CB_CONTINUE && mp->mp_info && mp->mp_info->mss_update ) {
+               rc = mp->mp_info->mss_update( op, rs, e );
+       }
+
        if ( rc == SLAP_CB_CONTINUE ) {
                rc = LDAP_SUCCESS;
        }
@@ -115,11 +115,7 @@ monitor_entry_modify(
 
        mp = ( monitor_entry_t * )e->e_private;
 
-       if ( mp->mp_info && mp->mp_info->mss_modify ) {
-               rc = mp->mp_info->mss_modify( op, rs, e );
-       }
-
-       if ( rc == SLAP_CB_CONTINUE && mp->mp_cb ) {
+       if ( mp->mp_cb ) {
                struct monitor_callback_t       *mc;
 
                for ( mc = mp->mp_cb; mc; mc = mc->mc_next ) {
@@ -132,6 +128,10 @@ monitor_entry_modify(
                }
        }
 
+       if ( rc == SLAP_CB_CONTINUE && mp->mp_info && mp->mp_info->mss_modify ) {
+               rc = mp->mp_info->mss_modify( op, rs, e );
+       }
+
        if ( rc == SLAP_CB_CONTINUE ) {
                rc = LDAP_SUCCESS;
        }