]> git.sur5r.net Git - openldap/commitdiff
Use accessor macros for SLAPI parameter blocks, should make it
authorLuke Howard <lukeh@openldap.org>
Fri, 22 Jul 2005 05:26:15 +0000 (05:26 +0000)
committerLuke Howard <lukeh@openldap.org>
Fri, 22 Jul 2005 05:26:15 +0000 (05:26 +0000)
easier to move into overlay private data

servers/slapd/operation.c
servers/slapd/slapi/plugin.c
servers/slapd/slapi/slapi.h
servers/slapd/slapi/slapi_ops.c
servers/slapd/slapi/slapi_overlay.c
servers/slapd/slapi/slapi_pblock.c
servers/slapd/slapi/slapi_utils.c

index dc95226c01ea8979ccc94757d8cc87345e3d180c..24805df0ab7ca5ed9d3dbbcc82deeec435bdb6dd 100644 (file)
@@ -97,8 +97,8 @@ slap_op_free( Operation *op )
        }
 
 #if defined( LDAP_SLAPI )
-       if ( op->o_pb != NULL ) {
-               slapi_pblock_destroy( (Slapi_PBlock *)op->o_pb );
+       if ( SLAPI_OPERATION_PBLOCK( op ) ) {
+               slapi_pblock_destroy( SLAPI_OPERATION_PBLOCK( op ) );
                slapi_int_free_object_extensions( SLAPI_X_EXT_OPERATION, op );
        }
 #endif /* defined( LDAP_SLAPI ) */
@@ -152,7 +152,7 @@ slap_op_alloc(
 
 #if defined( LDAP_SLAPI )
        if ( slapi_plugins_used ) {
-               op->o_pb = slapi_pblock_new();
+               SLAPI_OPERATION_PBLOCK( op ) = slapi_pblock_new();
                slapi_int_create_object_extensions( SLAPI_X_EXT_OPERATION, op );
        }
 #endif /* defined( LDAP_SLAPI ) */
index 5cabd8a7311d3ac60c97d09dd06e9dfb316c5ba1..abdd63d6cdc2f27a2430ed2b329fb55f77795574 100644 (file)
@@ -165,9 +165,9 @@ slapi_int_register_plugin(
 
        assert( be != NULL );
 
-       pTmpPB = (Slapi_PBlock *)be->be_pb;
+       pTmpPB = SLAPI_BACKEND_PBLOCK( be );
        if ( pTmpPB == NULL ) {
-               be->be_pb = (void *)pPB;
+               SLAPI_BACKEND_PBLOCK( be ) = pPB;
        } else {
                while ( pTmpPB != NULL && rc == LDAP_SUCCESS ) {
                        pSavePB = pTmpPB;
@@ -217,7 +217,7 @@ slapi_int_get_plugins(
                goto done;
        }
 
-       pCurrentPB = (Slapi_PBlock *)be->be_pb;
+       pCurrentPB = SLAPI_BACKEND_PBLOCK( be );
 
        while ( pCurrentPB != NULL && rc == LDAP_SUCCESS ) {
                rc = slapi_pblock_get( pCurrentPB, functype, &FuncPtr );
@@ -247,7 +247,7 @@ slapi_int_get_plugins(
                goto done;
        }
 
-       pCurrentPB = (Slapi_PBlock *)be->be_pb;
+       pCurrentPB = SLAPI_BACKEND_PBLOCK( be );
 
        while ( pCurrentPB != NULL && rc == LDAP_SUCCESS )  {
                rc = slapi_pblock_get( pCurrentPB, functype, &FuncPtr );
@@ -732,7 +732,7 @@ slapi_int_plugin_unparse(
        idx.bv_val = ibuf;
        i = 0;
 
-       for ( pp = be->be_pb;
+       for ( pp = SLAPI_BACKEND_PBLOCK( be );
              pp != NULL;
              slapi_pblock_get( pp, SLAPI_IBM_PBLOCK, &pp ) )
        {
index 73b70e3a915211b78ed206d50773f298e9d10d0f..b6061610fd22c6ffc364442d032afb50cb790118 100644 (file)
@@ -55,6 +55,10 @@ typedef struct _Audit_record Audit_record;
 
 #define SLAPI_OVERLAY_NAME                     "slapi"
 
+#define SLAPI_OPERATION_PBLOCK(_op)            ((op)->o_pb)
+#define SLAPI_CONNECTION_PBLOCK(_conn)         ((conn)->c_pb);
+#define SLAPI_BACKEND_PBLOCK(_be)              ((be)->be_pb)
+
 #define SLAPI_CONTROL_MANAGEDSAIT_OID          LDAP_CONTROL_MANAGEDSAIT
 #define SLAPI_CONTROL_SORTEDSEARCH_OID         LDAP_CONTROL_SORTREQUEST
 #define SLAPI_CONTROL_PAGED_RESULTS_OID                LDAP_CONTROL_PAGEDRESULTS
index 2c66afc2a0e7a6625de5c92098692f35706539d1..4e7e55b4c4408064ea26e48096cd7cb68da8ce35 100644 (file)
@@ -49,12 +49,13 @@ slapi_int_send_ldap_result_shim(
        size_t                  i;
        plugin_result_callback  prc = NULL;
        void                    *callback_data = NULL;
+       Slapi_PBlock            *pb = SLAPI_OPERATION_PBLOCK( op );
 
-       assert( op->o_pb != NULL );
+       assert( pb != NULL );   
 
-       slapi_pblock_get( op->o_pb, SLAPI_RESCONTROLS,             (void **)&controls );
-       slapi_pblock_get( op->o_pb, SLAPI_X_INTOP_RESULT_CALLBACK, (void **)&prc );
-       slapi_pblock_get( op->o_pb, SLAPI_X_INTOP_CALLBACK_DATA,   &callback_data );
+       slapi_pblock_get( pb, SLAPI_RESCONTROLS,             (void **)&controls );
+       slapi_pblock_get( pb, SLAPI_X_INTOP_RESULT_CALLBACK, (void **)&prc );
+       slapi_pblock_get( pb, SLAPI_X_INTOP_CALLBACK_DATA,   &callback_data );
 
        assert( controls == NULL );
 
@@ -72,8 +73,8 @@ slapi_int_send_ldap_result_shim(
                controls[i] = NULL;
        }
 
-       slapi_pblock_set( op->o_pb, SLAPI_RESCONTROLS,         (void *)controls );
-       slapi_pblock_set( op->o_pb, SLAPI_PLUGIN_INTOP_RESULT, (void *)rs->sr_err );
+       slapi_pblock_set( pb, SLAPI_RESCONTROLS,         (void *)controls );
+       slapi_pblock_set( pb, SLAPI_PLUGIN_INTOP_RESULT, (void *)rs->sr_err );
 
        if ( prc != NULL ) {
                (*prc)( rs->sr_err, callback_data );
@@ -89,11 +90,12 @@ slapi_int_send_search_entry_shim(
 {
        plugin_search_entry_callback    psec = NULL;
        void                            *callback_data = NULL;
+       Slapi_PBlock                    *pb = SLAPI_OPERATION_PBLOCK( op );
 
-       assert( op->o_pb != NULL );
+       assert( pb != NULL );
 
-       slapi_pblock_get( op->o_pb, SLAPI_X_INTOP_SEARCH_ENTRY_CALLBACK, (void **)&psec );
-       slapi_pblock_get( op->o_pb, SLAPI_X_INTOP_CALLBACK_DATA,         &callback_data );
+       slapi_pblock_get( pb, SLAPI_X_INTOP_SEARCH_ENTRY_CALLBACK, (void **)&psec );
+       slapi_pblock_get( pb, SLAPI_X_INTOP_CALLBACK_DATA,         &callback_data );
 
        if ( psec != NULL ) {
                return (*psec)( rs->sr_entry, callback_data );
@@ -107,7 +109,7 @@ slapi_int_send_ldap_extended_shim(
        Operation       *op,    
        SlapReply       *rs )
 {
-       assert( op->o_pb != NULL );
+       assert( SLAPI_OPERATION_PBLOCK( op ) != NULL );
 
        return;
 }
@@ -120,11 +122,12 @@ slapi_int_send_search_reference_shim(
        int                             i, rc = LDAP_SUCCESS;
        plugin_referral_entry_callback  prec = NULL;
        void                            *callback_data = NULL;
+       Slapi_PBlock                    *pb = SLAPI_OPERATION_PBLOCK( op );
 
-       assert( op->o_pb != NULL );
+       assert( pb != NULL );
 
-       slapi_pblock_get( op->o_pb, SLAPI_X_INTOP_REFERRAL_ENTRY_CALLBACK, (void **)&prec );
-       slapi_pblock_get( op->o_pb, SLAPI_X_INTOP_CALLBACK_DATA,           &callback_data );
+       slapi_pblock_get( pb, SLAPI_X_INTOP_REFERRAL_ENTRY_CALLBACK, (void **)&prec );
+       slapi_pblock_get( pb, SLAPI_X_INTOP_CALLBACK_DATA,           &callback_data );
 
        if ( prec != NULL ) {
                for ( i = 0; rs->sr_ref[i].bv_val != NULL; i++ ) {
@@ -395,8 +398,8 @@ slapi_int_init_connection( Slapi_PBlock *pb,
 
        rc = slapi_int_pblock_get_operation( pb, op, rs );
 
-       slapi_pblock_set( op->o_pb, SLAPI_OPERATION, op );
-       slapi_pblock_set( op->o_pb, SLAPI_CONNECTION, conn );
+       slapi_pblock_set( pb, SLAPI_OPERATION, op );
+       slapi_pblock_set( pb, SLAPI_CONNECTION, conn );
 
        ldap_pvt_thread_mutex_unlock( &conn->c_mutex );
 
@@ -414,6 +417,7 @@ void slapi_int_connection_destroy( Connection **pConn )
 {
        Connection *conn = *pConn;
        Operation *op;
+       Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
 
        if ( conn == NULL ) {
                return;
@@ -434,8 +438,8 @@ void slapi_int_connection_destroy( Connection **pConn )
                ber_sockbuf_free( conn->c_sb );
        }
 
-       slapi_pblock_set( op->o_pb, SLAPI_OPERATION, NULL );
-       slapi_pblock_set( op->o_pb, SLAPI_CONNECTION, NULL );
+       slapi_pblock_set( pb, SLAPI_OPERATION, NULL );
+       slapi_pblock_set( pb, SLAPI_CONNECTION, NULL );
 
        if ( op != NULL ) {
                slapi_ch_free( (void **)&op );
index 1aac1c105c4db3d9a989573a89261da0c475d53b..859dd006d71e7e793e04518e0f60a563e0153dc7 100644 (file)
@@ -96,7 +96,7 @@ slapi_over_aux_operational( Operation *op, SlapReply *rs )
        AttributeName           *anp;
        AccessControlState      acl_state = ACL_STATE_INIT;
 
-       ctx.cac_pb = op->o_pb;
+       ctx.cac_pb = SLAPI_OPERATION_PBLOCK( op );
        ctx.cac_op = op;
        ctx.cac_private = rs;
        ctx.cac_acl_state = &acl_state;
@@ -154,17 +154,17 @@ slapi_over_search( Operation *op, SlapReply *rs, int type )
 static int
 slapi_over_merge_controls( Operation *op, SlapReply *rs, Slapi_PBlock *pb)
 {
-       LDAPControl **slapiControls = NULL, **resControls;
-       int nSlapiControls = 0;
-       int nResControls = 0;
-       int i;
+       LDAPControl             **slapiControls = NULL, **resControls;
+       int                     nSlapiControls = 0;
+       int                     nResControls = 0;
+       int                     i;
 
        /* merge in controls */
        if ( rs->sr_ctrls != NULL ) {
                for ( nResControls = 0; rs->sr_ctrls[nResControls] != NULL; nResControls++ )
                        ;
        }
-       slapi_pblock_get( op->o_pb, SLAPI_RESCONTROLS, (void **)&slapiControls );
+       slapi_pblock_get( pb, SLAPI_RESCONTROLS, (void **)&slapiControls );
        if ( slapiControls != NULL ) {
                for ( nSlapiControls = 0; slapiControls[nSlapiControls] != NULL; nSlapiControls++ )
                        ;
@@ -189,7 +189,7 @@ slapi_over_merge_controls( Operation *op, SlapReply *rs, Slapi_PBlock *pb)
 
        if ( slapiControls != NULL ) {
                slapi_ch_free( (void **)&slapiControls );
-               slapi_pblock_set( op->o_pb, SLAPI_RESCONTROLS, NULL ); /* don't free */
+               slapi_pblock_set( pb, SLAPI_RESCONTROLS, NULL ); /* don't free */
        }
 
        rs->sr_ctrls = resControls;
@@ -200,22 +200,23 @@ slapi_over_merge_controls( Operation *op, SlapReply *rs, Slapi_PBlock *pb)
 static int
 slapi_over_result( Operation *op, SlapReply *rs, int type )
 {
-       int rc;
+       int                     rc;
+       Slapi_PBlock            *pb = SLAPI_OPERATION_PBLOCK( op );
 
        assert( rs->sr_type == REP_RESULT );
 
-       slapi_pblock_set( op->o_pb, SLAPI_RESULT_CODE,    (void *)rs->sr_err );
-       slapi_pblock_set( op->o_pb, SLAPI_RESULT_TEXT,    (void *)rs->sr_text );
-       slapi_pblock_set( op->o_pb, SLAPI_RESULT_MATCHED, (void *)rs->sr_matched );
+       slapi_pblock_set( pb, SLAPI_RESULT_CODE,    (void *)rs->sr_err );
+       slapi_pblock_set( pb, SLAPI_RESULT_TEXT,    (void *)rs->sr_text );
+       slapi_pblock_set( pb, SLAPI_RESULT_MATCHED, (void *)rs->sr_matched );
 
-       rc = slapi_int_call_plugins( op->o_bd, type, op->o_pb );
+       rc = slapi_int_call_plugins( op->o_bd, type, pb );
        
-       slapi_pblock_get( op->o_pb, SLAPI_RESULT_CODE,    (void **)&rs->sr_err );
-       slapi_pblock_get( op->o_pb, SLAPI_RESULT_TEXT,    (void **)&rs->sr_text );
-       slapi_pblock_get( op->o_pb, SLAPI_RESULT_MATCHED, (void **)&rs->sr_matched );
+       slapi_pblock_get( pb, SLAPI_RESULT_CODE,    (void **)&rs->sr_err );
+       slapi_pblock_get( pb, SLAPI_RESULT_TEXT,    (void **)&rs->sr_text );
+       slapi_pblock_get( pb, SLAPI_RESULT_MATCHED, (void **)&rs->sr_matched );
 
        if ( type == SLAPI_PLUGIN_PRE_RESULT_FN ) {
-               rc = slapi_over_merge_controls( op, rs, op->o_pb );
+               rc = slapi_over_merge_controls( op, rs, pb );
        }
 
        return SLAP_CB_CONTINUE;
@@ -642,7 +643,7 @@ slapi_over_cleanup( Operation *op, SlapReply *rs )
 static int
 slapi_op_func( Operation *op, SlapReply *rs )
 {
-       Slapi_PBlock            *pb = op->o_pb;
+       Slapi_PBlock            *pb;
        slap_operation_t        which;
        struct slapi_op_info    *opinfo;
        int                     rc, flags = 0;
@@ -650,11 +651,13 @@ slapi_op_func( Operation *op, SlapReply *rs )
        slap_overinst           *on;
        slap_callback           cb;
 
+       pb = SLAPI_OPERATION_PBLOCK( op );
+
        /*
         * We check for op->o_extensions to verify that we are not
         * processing a SLAPI internal operation. XXX
         */
-       if ( op->o_pb == NULL || op->o_extensions == NULL ) {
+       if ( pb == NULL || op->o_extensions == NULL ) {
                return SLAP_CB_CONTINUE;
        }
 
@@ -749,12 +752,17 @@ cleanup:
 static int
 slapi_over_extended( Operation *op, SlapReply *rs )
 {
-       Slapi_PBlock    *pb = op->o_pb;
+       Slapi_PBlock    *pb;
        SLAPI_FUNC      callback;
        int             sentResult = 0;
        int             rc;
        struct berval   reqdata = BER_BVNULL;
 
+       pb = SLAPI_OPERATION_PBLOCK( op );
+       if ( pb == NULL ) {
+               return SLAP_CB_CONTINUE;
+       }
+
        slapi_int_get_extop_plugin( &op->ore_reqoid, &callback );
        if ( callback == NULL ) {
                return SLAP_CB_CONTINUE;
@@ -821,7 +829,7 @@ slapi_over_acl_group(
 {
        Slapi_Entry             *e;
        int                     rc;
-       Slapi_PBlock            *pb = op->o_pb;
+       Slapi_PBlock            *pb = SLAPI_OPERATION_PBLOCK( op );
        BackendDB               *be = NULL;
        BackendDB               *be_orig = op->o_bd;
 
index 0445a5e53a018736a2c1950783065b4d1b0eabfd..e05e1c52e11a5bd082f2003cf1c38badc6172f73 100644 (file)
@@ -583,7 +583,7 @@ slapi_int_pblock_get_first( Backend *be, Slapi_PBlock **pb )
 {
 #if defined(LDAP_SLAPI)
        assert( pb != NULL );
-       *pb = (Slapi_PBlock *)be->be_pb;
+       *pb = SLAPI_BACKEND_PBLOCK( be );
        return (*pb == NULL ? LDAP_OTHER : LDAP_SUCCESS);
 #else /* LDAP_SLAPI */
        return LDAP_OTHER;
index 844438d9196cc3a96ceba2c5e397604630363bc7..ebf7773c840bd6a85e71c0a196470954e1a9312f 100644 (file)
@@ -3964,8 +3964,10 @@ int slapi_int_access_allowed( Operation *op,
 #ifdef LDAP_SLAPI
        int rc, slap_access = 0;
        slapi_acl_callback_t *pGetPlugin, *tmpPlugin;
+       Slapi_PBlock *pb;
 
-       if ( op->o_pb == NULL ) {
+       pb = SLAPI_OPERATION_PBLOCK( op );
+       if ( pb == NULL ) {
                /* internal operation */
                return 1;
        }
@@ -4006,8 +4008,8 @@ int slapi_int_access_allowed( Operation *op,
                 * 0    access denied
                 * 1    access granted
                 */
-               rc = (*pGetPlugin)( op->o_pb, entry, desc->ad_cname.bv_val,
-                                       val, slap_access, (void *)state );
+               rc = (*pGetPlugin)( pb, entry, desc->ad_cname.bv_val,
+                                   val, slap_access, (void *)state );
                if ( rc == 0 ) {
                        break;
                }