]> git.sur5r.net Git - openldap/commitdiff
Call SASL bind post-op SLAPI plugin _after_ DN has been set
authorLuke Howard <lukeh@openldap.org>
Sun, 31 Aug 2003 03:11:05 +0000 (03:11 +0000)
committerLuke Howard <lukeh@openldap.org>
Sun, 31 Aug 2003 03:11:05 +0000 (03:11 +0000)
servers/slapd/bind.c

index c7dfa7ebb0c228487924563403b6db9b29cd749a..d4be3855cfafe51a17484020fe42c690fd58d07e 100644 (file)
@@ -294,22 +294,6 @@ do_bind(
 
                rs->sr_err = slap_sasl_bind( op, rs );
 
-#ifdef LDAP_SLAPI
-               /*
-                * Normally post-operation plugins are called only after the
-                * backend operation. Because the front-end performs SASL
-                * binds on behalf of the backend, we'll make a special
-                * exception to call the post-operation plugins after a
-                * SASL bind.
-                */
-               slapi_x_pblock_set_operation( pb, op );
-               slapi_pblock_set( pb, SLAPI_BIND_TARGET, (void *)dn.bv_val );
-               slapi_pblock_set( pb, SLAPI_BIND_METHOD, (void *)method );
-               slapi_pblock_set( pb, SLAPI_BIND_CREDENTIALS, (void *)&op->orb_cred );
-               slapi_pblock_set( pb, SLAPI_MANAGEDSAIT, (void *)(0) );
-               (void) doPluginFNs( op->o_bd, SLAPI_PLUGIN_POST_BIND_FN, pb );
-#endif /* LDAP_SLAPI */
-
                ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
                if( rs->sr_err == LDAP_SUCCESS ) {
                        ber_dupbv(&op->o_conn->c_dn, &op->orb_edn);
@@ -368,6 +352,23 @@ do_bind(
                        }
                        op->o_conn->c_sasl_bind_in_progress = 0;
                }
+
+#ifdef LDAP_SLAPI
+               /*
+                * Normally post-operation plugins are called only after the
+                * backend operation. Because the front-end performs SASL
+                * binds on behalf of the backend, we'll make a special
+                * exception to call the post-operation plugins after a
+                * SASL bind.
+                */
+               slapi_x_pblock_set_operation( pb, op );
+               slapi_pblock_set( pb, SLAPI_BIND_TARGET, (void *)dn.bv_val );
+               slapi_pblock_set( pb, SLAPI_BIND_METHOD, (void *)method );
+               slapi_pblock_set( pb, SLAPI_BIND_CREDENTIALS, (void *)&op->orb_cred );
+               slapi_pblock_set( pb, SLAPI_MANAGEDSAIT, (void *)(0) );
+               (void) doPluginFNs( op->o_bd, SLAPI_PLUGIN_POST_BIND_FN, pb );
+#endif /* LDAP_SLAPI */
+
                ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
 
                goto cleanup;