mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-19 21:32:58 -05:00
Harmonize Slapi_PBlock field nomenclature with rest of slapd
This commit is contained in:
parent
ba8acc0c4a
commit
48c951007a
6 changed files with 326 additions and 328 deletions
|
|
@ -48,20 +48,20 @@ LDAP_SLAPI_F (int) slapi_int_pblock_get_next LDAP_P(( Slapi_PBlock **pb ));
|
|||
|
||||
#define PBLOCK_ASSERT_CONN( _pb ) do { \
|
||||
assert( (_pb) != NULL ); \
|
||||
assert( (_pb)->pconn != NULL ); \
|
||||
assert( (_pb)->pb_conn != NULL ); \
|
||||
} while (0)
|
||||
|
||||
#define PBLOCK_ASSERT_OP( _pb, _tag ) do { \
|
||||
PBLOCK_ASSERT_CONN( _pb ); \
|
||||
assert( (_pb)->pop != NULL ); \
|
||||
assert( (_pb)->pb_op != NULL ); \
|
||||
if ( _tag != 0 ) \
|
||||
assert( (_pb)->pop->o_tag == (_tag)); \
|
||||
assert( (_pb)->pb_op->o_tag == (_tag)); \
|
||||
} while (0)
|
||||
|
||||
#define PBLOCK_ASSERT_INTOP( _pb, _tag ) do { \
|
||||
PBLOCK_ASSERT_OP( _pb, _tag ); \
|
||||
assert( (_pb)->internal_op ); \
|
||||
assert( pb->pop == (Operation *)pb->pconn->c_pending_ops.stqh_first ); \
|
||||
assert( (_pb)->pb_intop ); \
|
||||
assert( (_pb)->pb_op == (Operation *)pb->pb_conn->c_pending_ops.stqh_first ); \
|
||||
} while (0)
|
||||
|
||||
/* plugin.c */
|
||||
|
|
|
|||
|
|
@ -110,20 +110,20 @@ union slapi_pblock_value {
|
|||
int pv_integer;
|
||||
long pv_long_integer;
|
||||
void *pv_pointer;
|
||||
void (*pv_function_pointer)(void *);
|
||||
int (*pv_function_pointer)();
|
||||
};
|
||||
|
||||
struct slapi_pblock {
|
||||
ldap_pvt_thread_mutex_t pblockMutex;
|
||||
int numParams;
|
||||
int curParams[PBLOCK_MAX_PARAMS];
|
||||
union slapi_pblock_value curVals[PBLOCK_MAX_PARAMS];
|
||||
ldap_pvt_thread_mutex_t pb_mutex;
|
||||
int pb_nParams;
|
||||
int pb_params[PBLOCK_MAX_PARAMS];
|
||||
union slapi_pblock_value pb_values[PBLOCK_MAX_PARAMS];
|
||||
/* native types */
|
||||
Connection *pconn;
|
||||
Operation *pop;
|
||||
SlapReply rs;
|
||||
int internal_op;
|
||||
char textbuf[ SLAP_TEXT_BUFLEN ];
|
||||
Connection *pb_conn;
|
||||
Operation *pb_op;
|
||||
SlapReply pb_rs;
|
||||
int pb_intop;
|
||||
char pb_textbuf[ SLAP_TEXT_BUFLEN ];
|
||||
};
|
||||
|
||||
#endif /* !NO_PBLOCK_CLASS */
|
||||
|
|
|
|||
|
|
@ -165,9 +165,9 @@ slapi_int_get_ctrls( Slapi_PBlock *pb )
|
|||
LDAPControl **c;
|
||||
int rc = LDAP_SUCCESS;
|
||||
|
||||
if ( pb->pop->o_ctrls != NULL ) {
|
||||
for ( c = pb->pop->o_ctrls; *c != NULL; c++ ) {
|
||||
rc = slap_parse_ctrl( pb->pop, &pb->rs, *c, &pb->rs.sr_text );
|
||||
if ( pb->pb_op->o_ctrls != NULL ) {
|
||||
for ( c = pb->pb_op->o_ctrls; *c != NULL; c++ ) {
|
||||
rc = slap_parse_ctrl( pb->pb_op, &pb->pb_rs, *c, &pb->pb_rs.sr_text );
|
||||
if ( rc != LDAP_SUCCESS )
|
||||
break;
|
||||
}
|
||||
|
|
@ -277,9 +277,9 @@ slapi_int_connection_init_pb( Slapi_PBlock *pb, ber_tag_t tag )
|
|||
op->o_connid = conn->c_connid;
|
||||
op->o_bd = frontendDB;
|
||||
|
||||
pb->pop = op;
|
||||
pb->pconn = conn;
|
||||
pb->internal_op = 1;
|
||||
pb->pb_op = op;
|
||||
pb->pb_conn = conn;
|
||||
pb->pb_intop = 1;
|
||||
|
||||
ldap_pvt_thread_mutex_unlock( &conn->c_mutex );
|
||||
}
|
||||
|
|
@ -288,7 +288,7 @@ static void
|
|||
slapi_int_set_operation_dn( Slapi_PBlock *pb )
|
||||
{
|
||||
Backend *be;
|
||||
Operation *op = pb->pop;
|
||||
Operation *op = pb->pb_op;
|
||||
|
||||
if ( BER_BVISNULL( &op->o_ndn ) ) {
|
||||
/* set to root DN */
|
||||
|
|
@ -308,8 +308,8 @@ slapi_int_connection_done_pb( Slapi_PBlock *pb )
|
|||
|
||||
PBLOCK_ASSERT_INTOP( pb, 0 );
|
||||
|
||||
conn = pb->pconn;
|
||||
op = pb->pop;
|
||||
conn = pb->pb_conn;
|
||||
op = pb->pb_op;
|
||||
|
||||
/* free allocated DNs */
|
||||
if ( !BER_BVISNULL( &op->o_dn ) )
|
||||
|
|
@ -363,16 +363,16 @@ slapi_int_connection_done_pb( Slapi_PBlock *pb )
|
|||
ber_sockbuf_free( conn->c_sb );
|
||||
}
|
||||
|
||||
slapi_ch_free( (void **)&pb->pop->o_callback );
|
||||
slapi_ch_free( (void **)&pb->pop );
|
||||
slapi_ch_free( (void **)&pb->pconn );
|
||||
slapi_ch_free( (void **)&pb->pb_op->o_callback );
|
||||
slapi_ch_free( (void **)&pb->pb_op );
|
||||
slapi_ch_free( (void **)&pb->pb_conn );
|
||||
}
|
||||
|
||||
static int
|
||||
slapi_int_func_internal_pb( Slapi_PBlock *pb, slap_operation_t which )
|
||||
{
|
||||
BI_op_bind **func;
|
||||
SlapReply *rs = &pb->rs;
|
||||
SlapReply *rs = &pb->pb_rs;
|
||||
int rc;
|
||||
|
||||
PBLOCK_ASSERT_INTOP( pb, 0 );
|
||||
|
|
@ -383,9 +383,9 @@ slapi_int_func_internal_pb( Slapi_PBlock *pb, slap_operation_t which )
|
|||
return rc;
|
||||
}
|
||||
|
||||
func = &pb->pop->o_bd->be_bind;
|
||||
func = &pb->pb_op->o_bd->be_bind;
|
||||
|
||||
return func[which]( pb->pop, &pb->rs );
|
||||
return func[which]( pb->pb_op, &pb->pb_rs );
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -398,7 +398,7 @@ slapi_delete_internal_pb( Slapi_PBlock *pb )
|
|||
PBLOCK_ASSERT_INTOP( pb, LDAP_REQ_DELETE );
|
||||
|
||||
slapi_int_func_internal_pb( pb, op_delete );
|
||||
slap_graduate_commit_csn( pb->pop );
|
||||
slap_graduate_commit_csn( pb->pb_op );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -415,21 +415,21 @@ slapi_add_internal_pb( Slapi_PBlock *pb )
|
|||
|
||||
PBLOCK_ASSERT_INTOP( pb, LDAP_REQ_ADD );
|
||||
|
||||
rs = &pb->rs;
|
||||
rs = &pb->pb_rs;
|
||||
|
||||
entry_orig = pb->pop->ora_e;
|
||||
pb->pop->ora_e = NULL;
|
||||
entry_orig = pb->pb_op->ora_e;
|
||||
pb->pb_op->ora_e = NULL;
|
||||
|
||||
if ( entry_orig != NULL ) {
|
||||
if ( pb->pop->ora_modlist != NULL || !BER_BVISNULL( &pb->pop->o_req_ndn )) {
|
||||
if ( pb->pb_op->ora_modlist != NULL || !BER_BVISNULL( &pb->pb_op->o_req_ndn )) {
|
||||
rs->sr_err = LDAP_PARAM_ERROR;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
assert( BER_BVISNULL( &pb->pop->o_req_dn ) ); /* shouldn't get set */
|
||||
ber_dupbv( &pb->pop->o_req_dn, &entry_orig->e_name );
|
||||
ber_dupbv( &pb->pop->o_req_ndn, &entry_orig->e_nname );
|
||||
} else if ( pb->pop->ora_modlist == NULL || BER_BVISNULL( &pb->pop->o_req_ndn )) {
|
||||
assert( BER_BVISNULL( &pb->pb_op->o_req_dn ) ); /* shouldn't get set */
|
||||
ber_dupbv( &pb->pb_op->o_req_dn, &entry_orig->e_name );
|
||||
ber_dupbv( &pb->pb_op->o_req_ndn, &entry_orig->e_nname );
|
||||
} else if ( pb->pb_op->ora_modlist == NULL || BER_BVISNULL( &pb->pb_op->o_req_ndn )) {
|
||||
rs->sr_err = LDAP_PARAM_ERROR;
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
@ -438,53 +438,53 @@ slapi_add_internal_pb( Slapi_PBlock *pb )
|
|||
* The caller can specify a new entry, or a target DN and set
|
||||
* of modifications, but not both.
|
||||
*/
|
||||
pb->pop->ora_e = (Entry *)slapi_ch_calloc( 1, sizeof(Entry) );
|
||||
ber_dupbv( &pb->pop->ora_e->e_name, &pb->pop->o_req_dn );
|
||||
ber_dupbv( &pb->pop->ora_e->e_nname, &pb->pop->o_req_ndn );
|
||||
pb->pb_op->ora_e = (Entry *)slapi_ch_calloc( 1, sizeof(Entry) );
|
||||
ber_dupbv( &pb->pb_op->ora_e->e_name, &pb->pb_op->o_req_dn );
|
||||
ber_dupbv( &pb->pb_op->ora_e->e_nname, &pb->pb_op->o_req_ndn );
|
||||
|
||||
if ( entry_orig != NULL ) {
|
||||
assert( pb->pop->ora_modlist == NULL );
|
||||
assert( pb->pb_op->ora_modlist == NULL );
|
||||
|
||||
rs->sr_err = slap_entry2mods( entry_orig, &pb->pop->ora_modlist,
|
||||
&rs->sr_text, pb->textbuf, sizeof( pb->textbuf ) );
|
||||
rs->sr_err = slap_entry2mods( entry_orig, &pb->pb_op->ora_modlist,
|
||||
&rs->sr_text, pb->pb_textbuf, sizeof( pb->pb_textbuf ) );
|
||||
if ( rs->sr_err != LDAP_SUCCESS ) {
|
||||
goto cleanup;
|
||||
}
|
||||
} else {
|
||||
assert( pb->pop->ora_modlist != NULL );
|
||||
assert( pb->pb_op->ora_modlist != NULL );
|
||||
}
|
||||
|
||||
rs->sr_err = slap_mods_check( pb->pop->ora_modlist, &rs->sr_text,
|
||||
pb->textbuf, sizeof( pb->textbuf ), NULL );
|
||||
rs->sr_err = slap_mods_check( pb->pb_op->ora_modlist, &rs->sr_text,
|
||||
pb->pb_textbuf, sizeof( pb->pb_textbuf ), NULL );
|
||||
if ( rs->sr_err != LDAP_SUCCESS ) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if ( slapi_int_func_internal_pb( pb, op_add ) == 0 ) {
|
||||
if ( pb->pop->ora_e != NULL && pb->pop->o_private != NULL ) {
|
||||
BackendDB *bd = pb->pop->o_bd;
|
||||
if ( pb->pb_op->ora_e != NULL && pb->pb_op->o_private != NULL ) {
|
||||
BackendDB *bd = pb->pb_op->o_bd;
|
||||
|
||||
/* could we use SLAPI_BACKEND instead? */
|
||||
pb->pop->o_bd = (BackendDB *)pb->pop->o_private;
|
||||
pb->pop->o_private = NULL;
|
||||
be_entry_release_w( pb->pop, pb->pop->ora_e );
|
||||
pb->pop->ora_e = NULL;
|
||||
pb->pop->o_bd = bd;
|
||||
pb->pop->o_private = NULL;
|
||||
pb->pb_op->o_bd = (BackendDB *)pb->pb_op->o_private;
|
||||
pb->pb_op->o_private = NULL;
|
||||
be_entry_release_w( pb->pb_op, pb->pb_op->ora_e );
|
||||
pb->pb_op->ora_e = NULL;
|
||||
pb->pb_op->o_bd = bd;
|
||||
pb->pb_op->o_private = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
cleanup:
|
||||
slap_graduate_commit_csn( pb->pop );
|
||||
slap_graduate_commit_csn( pb->pb_op );
|
||||
|
||||
if ( pb->pop->ora_e != NULL ) {
|
||||
slapi_entry_free( pb->pop->ora_e );
|
||||
pb->pop->ora_e = NULL;
|
||||
if ( pb->pb_op->ora_e != NULL ) {
|
||||
slapi_entry_free( pb->pb_op->ora_e );
|
||||
pb->pb_op->ora_e = NULL;
|
||||
}
|
||||
if ( entry_orig != NULL ) {
|
||||
pb->pop->ora_e = entry_orig;
|
||||
slapi_int_mods_free( pb->pop->ora_modlist );
|
||||
pb->pop->ora_modlist = NULL;
|
||||
pb->pb_op->ora_e = entry_orig;
|
||||
slapi_int_mods_free( pb->pb_op->ora_modlist );
|
||||
pb->pb_op->ora_modlist = NULL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -499,15 +499,15 @@ slapi_modrdn_internal_pb( Slapi_PBlock *pb )
|
|||
|
||||
PBLOCK_ASSERT_INTOP( pb, LDAP_REQ_MODRDN );
|
||||
|
||||
if ( BER_BVISEMPTY( &pb->pop->o_req_ndn ) ) {
|
||||
pb->rs.sr_err = LDAP_UNWILLING_TO_PERFORM;
|
||||
if ( BER_BVISEMPTY( &pb->pb_op->o_req_ndn ) ) {
|
||||
pb->pb_rs.sr_err = LDAP_UNWILLING_TO_PERFORM;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
slapi_int_func_internal_pb( pb, op_modrdn );
|
||||
|
||||
cleanup:
|
||||
slap_graduate_commit_csn( pb->pop );
|
||||
slap_graduate_commit_csn( pb->pb_op );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -523,20 +523,20 @@ slapi_modify_internal_pb( Slapi_PBlock *pb )
|
|||
|
||||
PBLOCK_ASSERT_INTOP( pb, LDAP_REQ_MODIFY );
|
||||
|
||||
rs = &pb->rs;
|
||||
rs = &pb->pb_rs;
|
||||
|
||||
if ( pb->pop->orm_modlist == NULL ) {
|
||||
if ( pb->pb_op->orm_modlist == NULL ) {
|
||||
rs->sr_err = LDAP_PARAM_ERROR;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if ( BER_BVISEMPTY( &pb->pop->o_req_ndn ) ) {
|
||||
if ( BER_BVISEMPTY( &pb->pb_op->o_req_ndn ) ) {
|
||||
rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
rs->sr_err = slap_mods_check( pb->pop->orm_modlist,
|
||||
&rs->sr_text, pb->textbuf, sizeof( pb->textbuf ), NULL );
|
||||
rs->sr_err = slap_mods_check( pb->pb_op->orm_modlist,
|
||||
&rs->sr_text, pb->pb_textbuf, sizeof( pb->pb_textbuf ), NULL );
|
||||
if ( rs->sr_err != LDAP_SUCCESS ) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
@ -544,7 +544,7 @@ slapi_modify_internal_pb( Slapi_PBlock *pb )
|
|||
slapi_int_func_internal_pb( pb, op_modify );
|
||||
|
||||
cleanup:
|
||||
slap_graduate_commit_csn( pb->pop );
|
||||
slap_graduate_commit_csn( pb->pb_op );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -618,7 +618,7 @@ slapi_search_internal_callback_pb( Slapi_PBlock *pb,
|
|||
|
||||
PBLOCK_ASSERT_INTOP( pb, LDAP_REQ_SEARCH );
|
||||
|
||||
rs = &pb->rs;
|
||||
rs = &pb->pb_rs;
|
||||
|
||||
/* search callback and arguments */
|
||||
slapi_pblock_set( pb, SLAPI_X_INTOP_RESULT_CALLBACK, (void *)prc );
|
||||
|
|
@ -626,14 +626,14 @@ slapi_search_internal_callback_pb( Slapi_PBlock *pb,
|
|||
slapi_pblock_set( pb, SLAPI_X_INTOP_REFERRAL_ENTRY_CALLBACK, (void *)prec );
|
||||
slapi_pblock_set( pb, SLAPI_X_INTOP_CALLBACK_DATA, (void *)callback_data );
|
||||
|
||||
if ( BER_BVISEMPTY( &pb->pop->ors_filterstr )) {
|
||||
if ( BER_BVISEMPTY( &pb->pb_op->ors_filterstr )) {
|
||||
rs->sr_err = LDAP_PARAM_ERROR;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if ( pb->pop->ors_filter == NULL ) {
|
||||
pb->pop->ors_filter = slapi_str2filter( pb->pop->ors_filterstr.bv_val );
|
||||
if ( pb->pop->ors_filter == NULL ) {
|
||||
if ( pb->pb_op->ors_filter == NULL ) {
|
||||
pb->pb_op->ors_filter = slapi_str2filter( pb->pb_op->ors_filterstr.bv_val );
|
||||
if ( pb->pb_op->ors_filter == NULL ) {
|
||||
rs->sr_err = LDAP_PROTOCOL_ERROR;
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
@ -645,8 +645,8 @@ slapi_search_internal_callback_pb( Slapi_PBlock *pb,
|
|||
|
||||
cleanup:
|
||||
if ( free_filter ) {
|
||||
slapi_filter_free( pb->pop->ors_filter, 1 );
|
||||
pb->pop->ors_filter = NULL;
|
||||
slapi_filter_free( pb->pb_op->ors_filter, 1 );
|
||||
pb->pb_op->ors_filter = NULL;
|
||||
}
|
||||
|
||||
slapi_pblock_delete_param( pb, SLAPI_X_INTOP_RESULT_CALLBACK );
|
||||
|
|
|
|||
|
|
@ -41,9 +41,9 @@ slapi_over_pblock_new( Operation *op )
|
|||
Slapi_PBlock *pb;
|
||||
|
||||
pb = slapi_pblock_new();
|
||||
pb->pop = op;
|
||||
pb->pconn = op->o_conn;
|
||||
pb->internal_op = 0;
|
||||
pb->pb_op = op;
|
||||
pb->pb_conn = op->o_conn;
|
||||
pb->pb_intop = 0;
|
||||
|
||||
PBLOCK_ASSERT_OP( pb, op->o_tag );
|
||||
|
||||
|
|
@ -469,7 +469,7 @@ slapi_over_response( Operation *op, SlapReply *rs )
|
|||
Slapi_PBlock *pb = SLAPI_OPERATION_PBLOCK( op );
|
||||
int rc = SLAP_CB_CONTINUE;
|
||||
|
||||
if ( pb->internal_op == 0 ) {
|
||||
if ( pb->pb_intop == 0 ) {
|
||||
switch ( rs->sr_type ) {
|
||||
case REP_RESULT:
|
||||
rc = slapi_over_result( op, rs, SLAPI_PLUGIN_PRE_RESULT_FN );
|
||||
|
|
@ -498,7 +498,7 @@ slapi_over_cleanup( Operation *op, SlapReply *rs )
|
|||
|
||||
slapi_over_unmerge_controls( op, rs );
|
||||
|
||||
if ( pb->internal_op == 0 ) {
|
||||
if ( pb->pb_intop == 0 ) {
|
||||
switch ( rs->sr_type ) {
|
||||
case REP_RESULT:
|
||||
rc = slapi_over_result( op, rs, SLAPI_PLUGIN_POST_RESULT_FN );
|
||||
|
|
@ -761,7 +761,7 @@ slapi_over_acl_group(
|
|||
if ( rc >= 0 ) /* 1 means no plugins called */
|
||||
rc = SLAP_CB_CONTINUE;
|
||||
else
|
||||
rc = pb->rs.sr_err;
|
||||
rc = pb->pb_rs.sr_err;
|
||||
|
||||
slapi_pblock_delete_param( pb, SLAPI_X_GROUP_ENTRY );
|
||||
slapi_pblock_delete_param( pb, SLAPI_X_GROUP_OPERATION_DN );
|
||||
|
|
|
|||
|
|
@ -28,15 +28,15 @@
|
|||
|
||||
/* some parameters require a valid connection and operation */
|
||||
#define PBLOCK_LOCK_CONN( _pb ) do { \
|
||||
ldap_pvt_thread_mutex_lock( &(_pb)->pconn->c_mutex ); \
|
||||
ldap_pvt_thread_mutex_lock( &(_pb)->pb_conn->c_mutex ); \
|
||||
} while (0)
|
||||
|
||||
#define PBLOCK_UNLOCK_CONN( _pb ) do { \
|
||||
ldap_pvt_thread_mutex_unlock( &(_pb)->pconn->c_mutex ); \
|
||||
ldap_pvt_thread_mutex_unlock( &(_pb)->pb_conn->c_mutex ); \
|
||||
} while (0)
|
||||
|
||||
/* some parameters are only settable for internal operations */
|
||||
#define PBLOCK_VALIDATE_IS_INTOP( _pb ) do { if ( (_pb)->internal_op == 0 ) break; } while ( 0 )
|
||||
#define PBLOCK_VALIDATE_IS_INTOP( _pb ) do { if ( (_pb)->pb_intop == 0 ) break; } while ( 0 )
|
||||
|
||||
static slapi_pblock_class_t
|
||||
pblock_get_param_class( int param )
|
||||
|
|
@ -289,13 +289,13 @@ pblock_get_param_class( int param )
|
|||
static void
|
||||
pblock_lock( Slapi_PBlock *pb )
|
||||
{
|
||||
ldap_pvt_thread_mutex_lock(&pb->pblockMutex);
|
||||
ldap_pvt_thread_mutex_lock(&pb->pb_mutex);
|
||||
}
|
||||
|
||||
static void
|
||||
pblock_unlock( Slapi_PBlock *pb )
|
||||
{
|
||||
ldap_pvt_thread_mutex_unlock(&pb->pblockMutex);
|
||||
ldap_pvt_thread_mutex_unlock(&pb->pb_mutex);
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
@ -324,20 +324,20 @@ pblock_get_default( Slapi_PBlock *pb, int param, void **value )
|
|||
return PBLOCK_ERROR;
|
||||
}
|
||||
|
||||
for ( i = 0; i < pb->numParams; i++ ) {
|
||||
if ( pb->curParams[i] == param ) {
|
||||
for ( i = 0; i < pb->pb_nParams; i++ ) {
|
||||
if ( pb->pb_params[i] == param ) {
|
||||
switch ( pbClass ) {
|
||||
case PBLOCK_CLASS_INTEGER:
|
||||
*((int *)value) = pb->curVals[i].pv_integer;
|
||||
*((int *)value) = pb->pb_values[i].pv_integer;
|
||||
break;
|
||||
case PBLOCK_CLASS_LONG_INTEGER:
|
||||
*((long *)value) = pb->curVals[i].pv_long_integer;
|
||||
*((long *)value) = pb->pb_values[i].pv_long_integer;
|
||||
break;
|
||||
case PBLOCK_CLASS_POINTER:
|
||||
*value = pb->curVals[i].pv_pointer;
|
||||
*value = pb->pb_values[i].pv_pointer;
|
||||
break;
|
||||
case PBLOCK_CLASS_FUNCTION_POINTER:
|
||||
*value = pb->curVals[i].pv_function_pointer;
|
||||
*value = pb->pb_values[i].pv_function_pointer;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -387,35 +387,34 @@ pblock_set_default( Slapi_PBlock *pb, int param, void *value )
|
|||
return PBLOCK_ERROR;
|
||||
}
|
||||
|
||||
if ( pb->numParams == PBLOCK_MAX_PARAMS ) {
|
||||
if ( pb->pb_nParams == PBLOCK_MAX_PARAMS ) {
|
||||
return PBLOCK_ERROR;
|
||||
}
|
||||
|
||||
for ( i = 0; i < pb->numParams; i++ ) {
|
||||
if ( pb->curParams[i] == param ) {
|
||||
switch ( pbClass ) {
|
||||
case PBLOCK_CLASS_INTEGER:
|
||||
pb->curVals[i].pv_integer = (*((int *)value));
|
||||
break;
|
||||
case PBLOCK_CLASS_LONG_INTEGER:
|
||||
pb->curVals[i].pv_long_integer = (*((long *)value));
|
||||
break;
|
||||
case PBLOCK_CLASS_POINTER:
|
||||
pb->curVals[i].pv_pointer = value;
|
||||
break;
|
||||
case PBLOCK_CLASS_FUNCTION_POINTER:
|
||||
pb->curVals[i].pv_function_pointer = value;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
for ( i = 0; i < pb->pb_nParams; i++ ) {
|
||||
if ( pb->pb_params[i] == param )
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( i >= pb->pb_nParams ) {
|
||||
pb->pb_params[i] = param;
|
||||
pb->pb_nParams++;
|
||||
}
|
||||
|
||||
if ( i >= pb->numParams ) {
|
||||
pb->curParams[i] = param;
|
||||
pb->numParams++;
|
||||
switch ( pbClass ) {
|
||||
case PBLOCK_CLASS_INTEGER:
|
||||
pb->pb_values[i].pv_integer = (*((int *)value));
|
||||
break;
|
||||
case PBLOCK_CLASS_LONG_INTEGER:
|
||||
pb->pb_values[i].pv_long_integer = (*((long *)value));
|
||||
break;
|
||||
case PBLOCK_CLASS_POINTER:
|
||||
pb->pb_values[i].pv_pointer = value;
|
||||
break;
|
||||
case PBLOCK_CLASS_FUNCTION_POINTER:
|
||||
pb->pb_values[i].pv_function_pointer = value;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return PBLOCK_SUCCESS;
|
||||
|
|
@ -430,75 +429,75 @@ pblock_get( Slapi_PBlock *pb, int param, void **value )
|
|||
|
||||
switch ( param ) {
|
||||
case SLAPI_OPERATION:
|
||||
*value = pb->pop;
|
||||
*value = pb->pb_op;
|
||||
break;
|
||||
case SLAPI_OPINITIATED_TIME:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((long *)value) = pb->pop->o_time;
|
||||
*((long *)value) = pb->pb_op->o_time;
|
||||
break;
|
||||
case SLAPI_OPERATION_ID:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((long *)value) = pb->pop->o_opid;
|
||||
*((long *)value) = pb->pb_op->o_opid;
|
||||
break;
|
||||
case SLAPI_OPERATION_TYPE:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((ber_tag_t *)value) = pb->pop->o_tag;
|
||||
*((ber_tag_t *)value) = pb->pb_op->o_tag;
|
||||
break;
|
||||
case SLAPI_REQCONTROLS:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((LDAPControl ***)value) = pb->pop->o_ctrls;
|
||||
*((LDAPControl ***)value) = pb->pb_op->o_ctrls;
|
||||
break;
|
||||
case SLAPI_REQUESTOR_DN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((char **)value) = pb->pop->o_ndn.bv_val;
|
||||
*((char **)value) = pb->pb_op->o_ndn.bv_val;
|
||||
break;
|
||||
case SLAPI_MANAGEDSAIT:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((int *)value) = get_manageDSAit( pb->pop );
|
||||
*((int *)value) = get_manageDSAit( pb->pb_op );
|
||||
break;
|
||||
case SLAPI_BACKEND:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((BackendDB **)value) = pb->pop->o_bd;
|
||||
*((BackendDB **)value) = pb->pb_op->o_bd;
|
||||
break;
|
||||
case SLAPI_BE_TYPE:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_bd != NULL )
|
||||
*((char **)value) = pb->pop->o_bd->bd_info->bi_type;
|
||||
if ( pb->pb_op->o_bd != NULL )
|
||||
*((char **)value) = pb->pb_op->o_bd->bd_info->bi_type;
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_CONNECTION:
|
||||
*value = pb->pconn;
|
||||
*value = pb->pb_conn;
|
||||
break;
|
||||
case SLAPI_X_CONN_SSF:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((slap_ssf_t *)value) = pb->pconn->c_ssf;
|
||||
*((slap_ssf_t *)value) = pb->pb_conn->c_ssf;
|
||||
break;
|
||||
case SLAPI_X_CONN_SASL_CONTEXT:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
if ( pb->pconn->c_sasl_authctx != NULL )
|
||||
*value = pb->pconn->c_sasl_authctx;
|
||||
if ( pb->pb_conn->c_sasl_authctx != NULL )
|
||||
*value = pb->pb_conn->c_sasl_authctx;
|
||||
else
|
||||
*value = pb->pconn->c_sasl_sockctx;
|
||||
*value = pb->pb_conn->c_sasl_sockctx;
|
||||
break;
|
||||
case SLAPI_TARGET_DN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((char **)value) = pb->pop->o_req_ndn.bv_val;
|
||||
*((char **)value) = pb->pb_op->o_req_ndn.bv_val;
|
||||
break;
|
||||
case SLAPI_REQUESTOR_ISROOT:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((int *)value) = be_isroot( pb->pop );
|
||||
*((int *)value) = be_isroot( pb->pb_op );
|
||||
break;
|
||||
case SLAPI_IS_REPLICATED_OPERATION:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
*((int *)value) = be_isupdate( pb->pop );
|
||||
*((int *)value) = be_isupdate( pb->pb_op );
|
||||
break;
|
||||
case SLAPI_CONN_AUTHTYPE:
|
||||
case SLAPI_CONN_AUTHMETHOD: /* XXX should return SASL mech */
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
*((char **)value) = pblock_get_authtype( &pb->pconn->c_authz,
|
||||
*((char **)value) = pblock_get_authtype( &pb->pb_conn->c_authz,
|
||||
#ifdef HAVE_TLS
|
||||
pb->pconn->c_is_tls
|
||||
pb->pb_conn->c_is_tls
|
||||
#else
|
||||
0
|
||||
#endif
|
||||
|
|
@ -507,61 +506,61 @@ pblock_get( Slapi_PBlock *pb, int param, void **value )
|
|||
case SLAPI_X_CONN_IS_UDP:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
*((int *)value) = pb->pconn->c_is_udp;
|
||||
*((int *)value) = pb->pb_conn->c_is_udp;
|
||||
#else
|
||||
*((int *)value) = 0;
|
||||
#endif
|
||||
break;
|
||||
case SLAPI_CONN_ID:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
*((long *)value) = pb->pconn->c_connid;
|
||||
*((long *)value) = pb->pb_conn->c_connid;
|
||||
break;
|
||||
case SLAPI_CONN_DN:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
*((char **)value) = pb->pconn->c_dn.bv_val;
|
||||
*((char **)value) = pb->pb_conn->c_dn.bv_val;
|
||||
break;
|
||||
case SLAPI_CONN_CLIENTIP:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
if ( strncmp( pb->pconn->c_peer_name.bv_val, "IP=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pconn->c_peer_name.bv_val[3];
|
||||
if ( strncmp( pb->pb_conn->c_peer_name.bv_val, "IP=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pb_conn->c_peer_name.bv_val[3];
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_X_CONN_CLIENTPATH:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
if ( strncmp( pb->pconn->c_peer_name.bv_val, "PATH=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pconn->c_peer_name.bv_val[5];
|
||||
if ( strncmp( pb->pb_conn->c_peer_name.bv_val, "PATH=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pb_conn->c_peer_name.bv_val[5];
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_CONN_SERVERIP:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
if ( strncmp( pb->pconn->c_peer_name.bv_val, "IP=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pconn->c_sock_name.bv_val[3];
|
||||
if ( strncmp( pb->pb_conn->c_peer_name.bv_val, "IP=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pb_conn->c_sock_name.bv_val[3];
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_X_CONN_SERVERPATH:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
if ( strncmp( pb->pconn->c_peer_name.bv_val, "PATH=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pconn->c_sock_name.bv_val[5];
|
||||
if ( strncmp( pb->pb_conn->c_peer_name.bv_val, "PATH=", 3 ) == 0 )
|
||||
*((char **)value) = &pb->pb_conn->c_sock_name.bv_val[5];
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_RESULT_CODE:
|
||||
case SLAPI_PLUGIN_INTOP_RESULT:
|
||||
*((int *)value) = pb->rs.sr_err;
|
||||
*((int *)value) = pb->pb_rs.sr_err;
|
||||
break;
|
||||
case SLAPI_RESULT_TEXT:
|
||||
*((const char **)value) = pb->rs.sr_text;
|
||||
*((const char **)value) = pb->pb_rs.sr_text;
|
||||
break;
|
||||
case SLAPI_RESULT_MATCHED:
|
||||
*((const char **)value) = pb->rs.sr_matched;
|
||||
*((const char **)value) = pb->pb_rs.sr_matched;
|
||||
break;
|
||||
case SLAPI_ADD_ENTRY:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_ADD )
|
||||
*((Slapi_Entry **)value) = pb->pop->ora_e;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_ADD )
|
||||
*((Slapi_Entry **)value) = pb->pb_op->ora_e;
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
|
|
@ -569,12 +568,12 @@ pblock_get( Slapi_PBlock *pb, int param, void **value )
|
|||
LDAPMod **mods = NULL;
|
||||
|
||||
pblock_get_default( pb, param, (void **)&mods );
|
||||
if ( mods == NULL && pb->internal_op == 0 ) {
|
||||
if ( pb->pop->o_tag != LDAP_REQ_MODIFY ) {
|
||||
if ( mods == NULL && pb->pb_intop == 0 ) {
|
||||
if ( pb->pb_op->o_tag != LDAP_REQ_MODIFY ) {
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
}
|
||||
mods = slapi_int_modifications2ldapmods( &pb->pop->orm_modlist, NULL );
|
||||
mods = slapi_int_modifications2ldapmods( &pb->pb_op->orm_modlist, NULL );
|
||||
pblock_set_default( pb, param, (void *)mods );
|
||||
}
|
||||
*((LDAPMod ***)value) = mods;
|
||||
|
|
@ -582,64 +581,64 @@ pblock_get( Slapi_PBlock *pb, int param, void **value )
|
|||
}
|
||||
case SLAPI_MODRDN_NEWRDN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_MODRDN )
|
||||
*((char **)value) = pb->pop->orr_newrdn.bv_val;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_MODRDN )
|
||||
*((char **)value) = pb->pb_op->orr_newrdn.bv_val;
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_MODRDN_NEWSUPERIOR:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_MODRDN && pb->pop->orr_newSup != NULL )
|
||||
*((char **)value) = pb->pop->orr_newSup->bv_val;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_MODRDN && pb->pb_op->orr_newSup != NULL )
|
||||
*((char **)value) = pb->pb_op->orr_newSup->bv_val;
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_MODRDN_DELOLDRDN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_MODRDN )
|
||||
*((int *)value) = pb->pop->orr_deleteoldrdn;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_MODRDN )
|
||||
*((int *)value) = pb->pb_op->orr_deleteoldrdn;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
case SLAPI_SEARCH_SCOPE:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pop->ors_scope;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pb_op->ors_scope;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
case SLAPI_SEARCH_DEREF:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pop->ors_deref;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pb_op->ors_deref;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
case SLAPI_SEARCH_SIZELIMIT:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pop->ors_slimit;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pb_op->ors_slimit;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
case SLAPI_SEARCH_TIMELIMIT:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pop->ors_tlimit;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pb_op->ors_tlimit;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
case SLAPI_SEARCH_FILTER:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
*((Slapi_Filter **)value) = pb->pop->ors_filter;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
*((Slapi_Filter **)value) = pb->pb_op->ors_filter;
|
||||
else
|
||||
*((Slapi_Filter **)value) = NULL;
|
||||
break;
|
||||
case SLAPI_SEARCH_STRFILTER:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
*((char **)value) = pb->pop->ors_filterstr.bv_val;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
*((char **)value) = pb->pb_op->ors_filterstr.bv_val;
|
||||
else
|
||||
*((char **)value) = NULL;
|
||||
break;
|
||||
|
|
@ -647,69 +646,69 @@ pblock_get( Slapi_PBlock *pb, int param, void **value )
|
|||
char **attrs = NULL;
|
||||
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag != LDAP_REQ_SEARCH ) {
|
||||
if ( pb->pb_op->o_tag != LDAP_REQ_SEARCH ) {
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
}
|
||||
pblock_get_default( pb, param, (void **)&attrs );
|
||||
if ( attrs == NULL && pb->internal_op == 0 ) {
|
||||
attrs = anlist2charray_x( pb->pop->ors_attrs, 0, pb->pop->o_tmpmemctx );
|
||||
if ( attrs == NULL && pb->pb_intop == 0 ) {
|
||||
attrs = anlist2charray_x( pb->pb_op->ors_attrs, 0, pb->pb_op->o_tmpmemctx );
|
||||
pblock_set_default( pb, param, (void *)attrs );
|
||||
}
|
||||
*((char ***)attrs) = attrs;
|
||||
}
|
||||
case SLAPI_SEARCH_ATTRSONLY:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pop->ors_attrsonly;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
*((int *)value) = pb->pb_op->ors_attrsonly;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
case SLAPI_SEARCH_RESULT_ENTRY:
|
||||
*((Slapi_Entry **)value) = pb->rs.sr_entry;
|
||||
*((Slapi_Entry **)value) = pb->pb_rs.sr_entry;
|
||||
break;
|
||||
case SLAPI_BIND_RET_SASLCREDS:
|
||||
*((struct berval **)value) = pb->rs.sr_sasldata;
|
||||
*((struct berval **)value) = pb->pb_rs.sr_sasldata;
|
||||
break;
|
||||
case SLAPI_EXT_OP_REQ_OID:
|
||||
*((const char **)value) = pb->pop->ore_reqoid.bv_val;
|
||||
*((const char **)value) = pb->pb_op->ore_reqoid.bv_val;
|
||||
break;
|
||||
case SLAPI_EXT_OP_REQ_VALUE:
|
||||
*((struct berval **)value) = pb->pop->ore_reqdata;
|
||||
*((struct berval **)value) = pb->pb_op->ore_reqdata;
|
||||
break;
|
||||
case SLAPI_EXT_OP_RET_OID:
|
||||
*((const char **)value) = pb->rs.sr_rspoid;
|
||||
*((const char **)value) = pb->pb_rs.sr_rspoid;
|
||||
break;
|
||||
case SLAPI_EXT_OP_RET_VALUE:
|
||||
*((struct berval **)value) = pb->rs.sr_rspdata;
|
||||
*((struct berval **)value) = pb->pb_rs.sr_rspdata;
|
||||
break;
|
||||
case SLAPI_BIND_METHOD:
|
||||
if ( pb->pop->o_tag == LDAP_REQ_BIND )
|
||||
*((int *)value) = pb->pop->orb_method;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_BIND )
|
||||
*((int *)value) = pb->pb_op->orb_method;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
case SLAPI_BIND_CREDENTIALS:
|
||||
if ( pb->pop->o_tag == LDAP_REQ_BIND )
|
||||
*((struct berval **)value) = &pb->pop->orb_cred;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_BIND )
|
||||
*((struct berval **)value) = &pb->pb_op->orb_cred;
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_COMPARE_TYPE:
|
||||
if ( pb->pop->o_tag == LDAP_REQ_COMPARE )
|
||||
*((char **)value) = pb->pop->orc_ava->aa_desc->ad_cname.bv_val;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_COMPARE )
|
||||
*((char **)value) = pb->pb_op->orc_ava->aa_desc->ad_cname.bv_val;
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_COMPARE_VALUE:
|
||||
if ( pb->pop->o_tag == LDAP_REQ_COMPARE )
|
||||
*((struct berval **)value) = &pb->pop->orc_ava->aa_value;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_COMPARE )
|
||||
*((struct berval **)value) = &pb->pb_op->orc_ava->aa_value;
|
||||
else
|
||||
*value = NULL;
|
||||
break;
|
||||
case SLAPI_ABANDON_MSGID:
|
||||
if ( pb->pop->o_tag == LDAP_REQ_ABANDON )
|
||||
*((int *)value) = pb->pop->orn_msgid;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_ABANDON )
|
||||
*((int *)value) = pb->pb_op->orn_msgid;
|
||||
else
|
||||
*((int *)value) = 0;
|
||||
break;
|
||||
|
|
@ -774,23 +773,23 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
|
||||
switch ( param ) {
|
||||
case SLAPI_OPERATION:
|
||||
pb->pop = (Operation *)value;
|
||||
pb->pb_op = (Operation *)value;
|
||||
break;
|
||||
case SLAPI_OPINITIATED_TIME:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
pb->pop->o_time = *((long *)value);
|
||||
pb->pb_op->o_time = *((long *)value);
|
||||
break;
|
||||
case SLAPI_OPERATION_ID:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
pb->pop->o_opid = *((long *)value);
|
||||
pb->pb_op->o_opid = *((long *)value);
|
||||
break;
|
||||
case SLAPI_OPERATION_TYPE:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
pb->pop->o_tag = *((ber_tag_t *)value);
|
||||
pb->pb_op->o_tag = *((ber_tag_t *)value);
|
||||
break;
|
||||
case SLAPI_REQCONTROLS:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
pb->pop->o_ctrls = (LDAPControl **)value;
|
||||
pb->pb_op->o_ctrls = (LDAPControl **)value;
|
||||
break;
|
||||
case SLAPI_RESCONTROLS: {
|
||||
LDAPControl **ctrls = NULL;
|
||||
|
|
@ -809,62 +808,62 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
break;
|
||||
case SLAPI_REQUESTOR_DN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
rc = pblock_set_dn( value, &pb->pop->o_dn, &pb->pop->o_ndn, pb->pop->o_tmpmemctx );
|
||||
rc = pblock_set_dn( value, &pb->pb_op->o_dn, &pb->pb_op->o_ndn, pb->pb_op->o_tmpmemctx );
|
||||
break;
|
||||
case SLAPI_MANAGEDSAIT:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
pb->pop->o_managedsait = *((int *)value);
|
||||
pb->pb_op->o_managedsait = *((int *)value);
|
||||
break;
|
||||
case SLAPI_BACKEND:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
pb->pop->o_bd = (BackendDB *)value;
|
||||
pb->pb_op->o_bd = (BackendDB *)value;
|
||||
break;
|
||||
case SLAPI_CONNECTION:
|
||||
pb->pconn = (Connection *)value;
|
||||
pb->pb_conn = (Connection *)value;
|
||||
break;
|
||||
case SLAPI_X_CONN_SSF:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
PBLOCK_LOCK_CONN( pb );
|
||||
pb->pconn->c_ssf = (slap_ssf_t)value;
|
||||
pb->pb_conn->c_ssf = (slap_ssf_t)value;
|
||||
PBLOCK_UNLOCK_CONN( pb );
|
||||
break;
|
||||
case SLAPI_X_CONN_SASL_CONTEXT:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
PBLOCK_LOCK_CONN( pb );
|
||||
pb->pconn->c_sasl_authctx = value;
|
||||
pb->pb_conn->c_sasl_authctx = value;
|
||||
PBLOCK_UNLOCK_CONN( pb );
|
||||
break;
|
||||
case SLAPI_TARGET_DN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
rc = pblock_set_dn( value, &pb->pop->o_req_dn, &pb->pop->o_req_ndn, pb->pop->o_tmpmemctx );
|
||||
rc = pblock_set_dn( value, &pb->pb_op->o_req_dn, &pb->pb_op->o_req_ndn, pb->pb_op->o_tmpmemctx );
|
||||
break;
|
||||
case SLAPI_CONN_ID:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
PBLOCK_LOCK_CONN( pb );
|
||||
pb->pconn->c_connid = *((long *)value);
|
||||
pb->pb_conn->c_connid = *((long *)value);
|
||||
PBLOCK_UNLOCK_CONN( pb );
|
||||
break;
|
||||
case SLAPI_CONN_DN:
|
||||
PBLOCK_ASSERT_CONN( pb );
|
||||
PBLOCK_LOCK_CONN( pb );
|
||||
rc = pblock_set_dn( value, &pb->pconn->c_dn, &pb->pconn->c_ndn, NULL );
|
||||
rc = pblock_set_dn( value, &pb->pb_conn->c_dn, &pb->pb_conn->c_ndn, NULL );
|
||||
PBLOCK_UNLOCK_CONN( pb );
|
||||
break;
|
||||
case SLAPI_RESULT_CODE:
|
||||
case SLAPI_PLUGIN_INTOP_RESULT:
|
||||
pb->rs.sr_err = *((int *)value);
|
||||
pb->pb_rs.sr_err = *((int *)value);
|
||||
break;
|
||||
case SLAPI_RESULT_TEXT:
|
||||
snprintf( pb->textbuf, sizeof( pb->textbuf ), "%s", (char *)value );
|
||||
pb->rs.sr_text = pb->textbuf;
|
||||
snprintf( pb->pb_textbuf, sizeof( pb->pb_textbuf ), "%s", (char *)value );
|
||||
pb->pb_rs.sr_text = pb->pb_textbuf;
|
||||
break;
|
||||
case SLAPI_RESULT_MATCHED:
|
||||
pb->rs.sr_matched = (char *)value; /* XXX should dup? */
|
||||
pb->pb_rs.sr_matched = (char *)value; /* XXX should dup? */
|
||||
break;
|
||||
case SLAPI_ADD_ENTRY:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_ADD ) {
|
||||
pb->pop->ora_e = (Slapi_Entry *)value;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_ADD ) {
|
||||
pb->pb_op->ora_e = (Slapi_Entry *)value;
|
||||
} else {
|
||||
rc = PBLOCK_ERROR;
|
||||
}
|
||||
|
|
@ -878,16 +877,16 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
break;
|
||||
}
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_MODIFY ) {
|
||||
mlp = &pb->pop->orm_modlist;
|
||||
} else if ( pb->pop->o_tag == LDAP_REQ_ADD ) {
|
||||
mlp = &pb->pop->ora_modlist;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_MODIFY ) {
|
||||
mlp = &pb->pb_op->orm_modlist;
|
||||
} else if ( pb->pb_op->o_tag == LDAP_REQ_ADD ) {
|
||||
mlp = &pb->pb_op->ora_modlist;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
if ( *mlp != NULL ) {
|
||||
if ( pb->internal_op )
|
||||
if ( pb->pb_intop )
|
||||
slapi_int_mods_free( *mlp ); /* caller owns values */
|
||||
else
|
||||
slap_mods_free( *mlp ); /* we own values */
|
||||
|
|
@ -899,9 +898,9 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
case SLAPI_MODRDN_NEWRDN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_MODRDN ) {
|
||||
rc = pblock_set_dn( value, &pb->pop->orr_newrdn, &pb->pop->orr_nnewrdn, pb->pop->o_tmpmemctx );
|
||||
if ( rc == LDAP_SUCCESS ) rc = rdn_validate( &pb->pop->orr_nnewrdn );
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_MODRDN ) {
|
||||
rc = pblock_set_dn( value, &pb->pb_op->orr_newrdn, &pb->pb_op->orr_nnewrdn, pb->pb_op->o_tmpmemctx );
|
||||
if ( rc == LDAP_SUCCESS ) rc = rdn_validate( &pb->pb_op->orr_nnewrdn );
|
||||
} else {
|
||||
rc = PBLOCK_ERROR;
|
||||
}
|
||||
|
|
@ -909,26 +908,26 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
case SLAPI_MODRDN_NEWSUPERIOR:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_MODRDN ) {
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_MODRDN ) {
|
||||
if ( value == NULL ) {
|
||||
if ( pb->pop->orr_newSup != NULL ) {
|
||||
pb->pop->o_tmpfree( pb->pop->orr_newSup, pb->pop->o_tmpmemctx );
|
||||
pb->pop->orr_newSup = NULL;
|
||||
if ( pb->pb_op->orr_newSup != NULL ) {
|
||||
pb->pb_op->o_tmpfree( pb->pb_op->orr_newSup, pb->pb_op->o_tmpmemctx );
|
||||
pb->pb_op->orr_newSup = NULL;
|
||||
}
|
||||
if ( pb->pop->orr_newSup != NULL ) {
|
||||
pb->pop->o_tmpfree( pb->pop->orr_nnewSup, pb->pop->o_tmpmemctx );
|
||||
pb->pop->orr_nnewSup = NULL;
|
||||
if ( pb->pb_op->orr_newSup != NULL ) {
|
||||
pb->pb_op->o_tmpfree( pb->pb_op->orr_nnewSup, pb->pb_op->o_tmpmemctx );
|
||||
pb->pb_op->orr_nnewSup = NULL;
|
||||
}
|
||||
} else {
|
||||
if ( pb->pop->orr_newSup == NULL ) {
|
||||
pb->pop->orr_newSup = (struct berval *)pb->pop->o_tmpalloc(
|
||||
sizeof(struct berval), pb->pop->o_tmpmemctx );
|
||||
if ( pb->pb_op->orr_newSup == NULL ) {
|
||||
pb->pb_op->orr_newSup = (struct berval *)pb->pb_op->o_tmpalloc(
|
||||
sizeof(struct berval), pb->pb_op->o_tmpmemctx );
|
||||
}
|
||||
if ( pb->pop->orr_nnewSup == NULL ) {
|
||||
pb->pop->orr_nnewSup = (struct berval *)pb->pop->o_tmpalloc(
|
||||
sizeof(struct berval), pb->pop->o_tmpmemctx );
|
||||
if ( pb->pb_op->orr_nnewSup == NULL ) {
|
||||
pb->pb_op->orr_nnewSup = (struct berval *)pb->pb_op->o_tmpalloc(
|
||||
sizeof(struct berval), pb->pb_op->o_tmpmemctx );
|
||||
}
|
||||
rc = pblock_set_dn( value, pb->pop->orr_newSup, pb->pop->orr_nnewSup, pb->pop->o_tmpmemctx );
|
||||
rc = pblock_set_dn( value, pb->pb_op->orr_newSup, pb->pb_op->orr_nnewSup, pb->pb_op->o_tmpmemctx );
|
||||
}
|
||||
} else {
|
||||
rc = PBLOCK_ERROR;
|
||||
|
|
@ -937,8 +936,8 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
case SLAPI_MODRDN_DELOLDRDN:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_MODRDN )
|
||||
pb->pop->orr_deleteoldrdn = *((int *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_MODRDN )
|
||||
pb->pb_op->orr_deleteoldrdn = *((int *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
|
|
@ -946,7 +945,7 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
int scope = *((int *)value);
|
||||
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH ) {
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH ) {
|
||||
switch ( *((int *)value) ) {
|
||||
case LDAP_SCOPE_BASE:
|
||||
case LDAP_SCOPE_ONELEVEL:
|
||||
|
|
@ -954,7 +953,7 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
#ifdef LDAP_SCOPE_SUBORDINATE
|
||||
case LDAP_SCOPE_SUBORDINATE:
|
||||
#endif
|
||||
pb->pop->ors_scope = scope;
|
||||
pb->pb_op->ors_scope = scope;
|
||||
break;
|
||||
default:
|
||||
rc = PBLOCK_ERROR;
|
||||
|
|
@ -967,37 +966,37 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
}
|
||||
case SLAPI_SEARCH_DEREF:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pop->ors_deref = *((int *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pb_op->ors_deref = *((int *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
case SLAPI_SEARCH_SIZELIMIT:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pop->ors_slimit = *((int *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pb_op->ors_slimit = *((int *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
case SLAPI_SEARCH_TIMELIMIT:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pop->ors_tlimit = *((int *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pb_op->ors_tlimit = *((int *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
case SLAPI_SEARCH_FILTER:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pop->ors_filter = (Slapi_Filter *)value;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pb_op->ors_filter = (Slapi_Filter *)value;
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
case SLAPI_SEARCH_STRFILTER:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH ) {
|
||||
pb->pop->ors_filterstr.bv_val = (char *)value;
|
||||
pb->pop->ors_filterstr.bv_len = strlen((char *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH ) {
|
||||
pb->pb_op->ors_filterstr.bv_val = (char *)value;
|
||||
pb->pb_op->ors_filterstr.bv_len = strlen((char *)value);
|
||||
} else {
|
||||
rc = PBLOCK_ERROR;
|
||||
}
|
||||
|
|
@ -1010,7 +1009,7 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag != LDAP_REQ_SEARCH ) {
|
||||
if ( pb->pb_op->o_tag != LDAP_REQ_SEARCH ) {
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
}
|
||||
|
|
@ -1019,54 +1018,54 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
if ( rc != PBLOCK_SUCCESS ) {
|
||||
break;
|
||||
}
|
||||
if ( pb->pop->ors_attrs != NULL ) {
|
||||
pb->pop->o_tmpfree( pb->pop->ors_attrs, pb->pop->o_tmpmemctx );
|
||||
pb->pop->ors_attrs = NULL;
|
||||
if ( pb->pb_op->ors_attrs != NULL ) {
|
||||
pb->pb_op->o_tmpfree( pb->pb_op->ors_attrs, pb->pb_op->o_tmpmemctx );
|
||||
pb->pb_op->ors_attrs = NULL;
|
||||
}
|
||||
if ( attrs != NULL ) {
|
||||
for ( i = 0; attrs[i] != NULL; i++ )
|
||||
;
|
||||
}
|
||||
if ( i ) {
|
||||
an = (AttributeName *)pb->pop->o_tmpalloc( (i + 1) *
|
||||
sizeof(AttributeName), pb->pop->o_tmpmemctx );
|
||||
an = (AttributeName *)pb->pb_op->o_tmpalloc( (i + 1) *
|
||||
sizeof(AttributeName), pb->pb_op->o_tmpmemctx );
|
||||
for ( i = 0; attrs[i] != NULL; i++ ) {
|
||||
an[i].an_desc = NULL;
|
||||
an[i].an_oc = NULL;
|
||||
an[i].an_oc_exclude = 0;
|
||||
an[i].an_name.bv_val = attrs[i];
|
||||
an[i].an_name.bv_len = strlen( attrs[i] );
|
||||
slap_bv2ad( &an[i].an_name, &an[i].an_desc, &pb->rs.sr_text );
|
||||
slap_bv2ad( &an[i].an_name, &an[i].an_desc, &pb->pb_rs.sr_text );
|
||||
}
|
||||
an[i].an_name.bv_val = NULL;
|
||||
an[i].an_name.bv_len = 0;
|
||||
}
|
||||
pb->pop->ors_attrs = an;
|
||||
pb->pb_op->ors_attrs = an;
|
||||
break;
|
||||
}
|
||||
case SLAPI_SEARCH_ATTRSONLY:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pop->ors_attrsonly = *((int *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
pb->pb_op->ors_attrsonly = *((int *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
case SLAPI_SEARCH_RESULT_ENTRY:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
pb->rs.sr_entry = (Slapi_Entry *)value;
|
||||
pb->pb_rs.sr_entry = (Slapi_Entry *)value;
|
||||
break;
|
||||
case SLAPI_BIND_RET_SASLCREDS:
|
||||
pb->rs.sr_sasldata = (struct berval *)value;
|
||||
pb->pb_rs.sr_sasldata = (struct berval *)value;
|
||||
break;
|
||||
case SLAPI_EXT_OP_REQ_OID:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_EXTENDED ) {
|
||||
pb->pop->ore_reqoid.bv_val = (char *)value;
|
||||
pb->pop->ore_reqoid.bv_len = strlen((char *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_EXTENDED ) {
|
||||
pb->pb_op->ore_reqoid.bv_val = (char *)value;
|
||||
pb->pb_op->ore_reqoid.bv_len = strlen((char *)value);
|
||||
} else {
|
||||
rc = PBLOCK_ERROR;
|
||||
}
|
||||
|
|
@ -1075,23 +1074,23 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_EXTENDED )
|
||||
pb->pop->ore_reqdata = (struct berval *)value;
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_EXTENDED )
|
||||
pb->pb_op->ore_reqdata = (struct berval *)value;
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
case SLAPI_EXT_OP_RET_OID:
|
||||
pb->rs.sr_rspoid = (char *)value;
|
||||
pb->pb_rs.sr_rspoid = (char *)value;
|
||||
break;
|
||||
case SLAPI_EXT_OP_RET_VALUE:
|
||||
pb->rs.sr_rspdata = (struct berval *)value;
|
||||
pb->pb_rs.sr_rspdata = (struct berval *)value;
|
||||
break;
|
||||
case SLAPI_BIND_METHOD:
|
||||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_BIND )
|
||||
pb->pop->orb_method = *((int *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_BIND )
|
||||
pb->pb_op->orb_method = *((int *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
|
|
@ -1099,8 +1098,8 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_BIND )
|
||||
pb->pop->orb_cred = *((struct berval *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_BIND )
|
||||
pb->pb_op->orb_cred = *((struct berval *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
|
|
@ -1108,11 +1107,11 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_COMPARE ) {
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_COMPARE ) {
|
||||
const char *text;
|
||||
|
||||
pb->pop->orc_ava->aa_desc = NULL;
|
||||
rc = slap_str2ad( (char *)value, &pb->pop->orc_ava->aa_desc, &text );
|
||||
pb->pb_op->orc_ava->aa_desc = NULL;
|
||||
rc = slap_str2ad( (char *)value, &pb->pb_op->orc_ava->aa_desc, &text );
|
||||
} else {
|
||||
rc = PBLOCK_ERROR;
|
||||
}
|
||||
|
|
@ -1121,8 +1120,8 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_COMPARE )
|
||||
pb->pop->orc_ava->aa_value = *((struct berval *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_COMPARE )
|
||||
pb->pb_op->orc_ava->aa_value = *((struct berval *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
|
|
@ -1130,8 +1129,8 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
PBLOCK_ASSERT_OP( pb, 0 );
|
||||
PBLOCK_VALIDATE_IS_INTOP( pb );
|
||||
|
||||
if ( pb->pop->o_tag == LDAP_REQ_ABANDON)
|
||||
pb->pop->orn_msgid = *((int *)value);
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_ABANDON)
|
||||
pb->pb_op->orn_msgid = *((int *)value);
|
||||
else
|
||||
rc = PBLOCK_ERROR;
|
||||
break;
|
||||
|
|
@ -1160,7 +1159,7 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
|
|||
static void
|
||||
pblock_clear( Slapi_PBlock *pb )
|
||||
{
|
||||
pb->numParams = 1;
|
||||
pb->pb_nParams = 1;
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
@ -1170,23 +1169,23 @@ pblock_delete_param( Slapi_PBlock *p, int param )
|
|||
|
||||
pblock_lock(p);
|
||||
|
||||
for ( i = 0; i < p->numParams; i++ ) {
|
||||
if ( p->curParams[i] == param ) {
|
||||
for ( i = 0; i < p->pb_nParams; i++ ) {
|
||||
if ( p->pb_params[i] == param ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i >= p->numParams ) {
|
||||
if (i >= p->pb_nParams ) {
|
||||
pblock_unlock( p );
|
||||
return PBLOCK_ERROR;
|
||||
}
|
||||
|
||||
/* move last parameter to index of deleted parameter */
|
||||
if ( p->numParams > 1 ) {
|
||||
p->curParams[i] = p->curParams[p->numParams - 1];
|
||||
p->curVals[i] = p->curVals[p->numParams - 1];
|
||||
if ( p->pb_nParams > 1 ) {
|
||||
p->pb_params[i] = p->pb_params[p->pb_nParams - 1];
|
||||
p->pb_values[i] = p->pb_values[p->pb_nParams - 1];
|
||||
}
|
||||
p->numParams--;
|
||||
p->pb_nParams--;
|
||||
|
||||
pblock_unlock( p );
|
||||
|
||||
|
|
@ -1200,15 +1199,14 @@ slapi_pblock_new(void)
|
|||
|
||||
pb = (Slapi_PBlock *) ch_calloc( 1, sizeof(Slapi_PBlock) );
|
||||
if ( pb != NULL ) {
|
||||
ldap_pvt_thread_mutex_init( &pb->pblockMutex );
|
||||
memset( pb->curParams, 0, sizeof(pb->curParams) );
|
||||
memset( pb->curVals, 0, sizeof(pb->curVals) );
|
||||
pb->curParams[0] = SLAPI_IBM_PBLOCK;
|
||||
pb->curVals[0].pv_pointer = NULL;
|
||||
pb->numParams = 1;
|
||||
pb->pconn = NULL;
|
||||
pb->pop = NULL;
|
||||
pb->internal_op = 0;
|
||||
ldap_pvt_thread_mutex_init( &pb->pb_mutex );
|
||||
|
||||
pb->pb_params[0] = SLAPI_IBM_PBLOCK;
|
||||
pb->pb_values[0].pv_pointer = NULL;
|
||||
pb->pb_nParams = 1;
|
||||
pb->pb_conn = NULL;
|
||||
pb->pb_op = NULL;
|
||||
pb->pb_intop = 0;
|
||||
}
|
||||
return pb;
|
||||
}
|
||||
|
|
@ -1227,7 +1225,7 @@ pblock_destroy( Slapi_PBlock *pb )
|
|||
ldap_controls_free( controls );
|
||||
}
|
||||
|
||||
if ( pb->internal_op ) {
|
||||
if ( pb->pb_intop ) {
|
||||
slapi_int_connection_done_pb( pb );
|
||||
} else {
|
||||
pblock_get_default( pb, SLAPI_MODIFY_MODS, (void **)&mods );
|
||||
|
|
@ -1236,10 +1234,10 @@ pblock_destroy( Slapi_PBlock *pb )
|
|||
|
||||
pblock_get_default( pb, SLAPI_SEARCH_ATTRS, (void **)&attrs );
|
||||
if ( attrs != NULL )
|
||||
pb->pop->o_tmpfree( attrs, pb->pop->o_tmpmemctx );
|
||||
pb->pb_op->o_tmpfree( attrs, pb->pb_op->o_tmpmemctx );
|
||||
}
|
||||
|
||||
ldap_pvt_thread_mutex_destroy( &pb->pblockMutex );
|
||||
ldap_pvt_thread_mutex_destroy( &pb->pb_mutex );
|
||||
slapi_ch_free( (void **)&pb );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -462,9 +462,9 @@ slapi_entry_has_children( const Slapi_Entry *e )
|
|||
|
||||
slapi_pblock_set( pb, SLAPI_TARGET_DN, slapi_entry_get_dn( (Entry *)e ) );
|
||||
|
||||
pb->pop->o_bd = select_backend( (struct berval *)&e->e_nname, 0, 0 );
|
||||
if ( pb->pop->o_bd != NULL ) {
|
||||
pb->pop->o_bd->be_has_subordinates( pb->pop, (Entry *)e, &hasSubordinates );
|
||||
pb->pb_op->o_bd = select_backend( (struct berval *)&e->e_nname, 0, 0 );
|
||||
if ( pb->pb_op->o_bd != NULL ) {
|
||||
pb->pb_op->o_bd->be_has_subordinates( pb->pb_op, (Entry *)e, &hasSubordinates );
|
||||
}
|
||||
|
||||
slapi_pblock_destroy( pb );
|
||||
|
|
@ -591,7 +591,7 @@ slapi_entry_delete_values( Slapi_Entry *e, const char *type, struct berval **val
|
|||
}
|
||||
|
||||
if ( vals[0] == NULL ) {
|
||||
/* SLAPI doco says LDAP_OPERATIONS_ERROR but LDAP_OTHER is better */
|
||||
/* SLAPI doco says LDApb_opERATIONS_ERROR but LDAP_OTHER is better */
|
||||
return attr_delete( &e->e_attrs, mod.sm_desc ) ? LDAP_OTHER : LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
@ -925,10 +925,10 @@ char *slapi_dn_beparent( Slapi_PBlock *pb, const char *_dn )
|
|||
struct berval dn, prettyDN;
|
||||
struct berval normalizedDN, parentDN;
|
||||
|
||||
if ( pb == NULL || pb->pop == NULL )
|
||||
if ( pb == NULL || pb->pb_op == NULL )
|
||||
return NULL;
|
||||
|
||||
be = pb->pop->o_bd;
|
||||
be = pb->pb_op->o_bd;
|
||||
|
||||
dn.bv_val = (char *)_dn;
|
||||
dn.bv_len = strlen( _dn );
|
||||
|
|
@ -1297,9 +1297,9 @@ slapi_send_ldap_result(
|
|||
{
|
||||
SlapReply *rs;
|
||||
|
||||
assert( pb->pop != NULL );
|
||||
assert( pb->pb_op != NULL );
|
||||
|
||||
rs = &pb->rs;
|
||||
rs = &pb->pb_rs;
|
||||
|
||||
rs->sr_err = err;
|
||||
rs->sr_matched = matched;
|
||||
|
|
@ -1307,14 +1307,14 @@ slapi_send_ldap_result(
|
|||
rs->sr_ref = NULL;
|
||||
|
||||
if ( err == LDAP_SASL_BIND_IN_PROGRESS ) {
|
||||
send_ldap_sasl( pb->pop, rs );
|
||||
send_ldap_sasl( pb->pb_op, rs );
|
||||
} else if ( rs->sr_rspoid != NULL ) {
|
||||
send_ldap_extended( pb->pop, rs );
|
||||
send_ldap_extended( pb->pb_op, rs );
|
||||
} else {
|
||||
if ( pb->pop->o_tag == LDAP_REQ_SEARCH )
|
||||
if ( pb->pb_op->o_tag == LDAP_REQ_SEARCH )
|
||||
rs->sr_nentries = nentries;
|
||||
|
||||
send_ldap_result( pb->pop, rs );
|
||||
send_ldap_result( pb->pb_op, rs );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1332,7 +1332,7 @@ slapi_send_ldap_search_entry(
|
|||
const char *text;
|
||||
int rc;
|
||||
|
||||
assert( pb->pop != NULL );
|
||||
assert( pb->pb_op != NULL );
|
||||
|
||||
if ( attrs != NULL ) {
|
||||
for ( i = 0; attrs[ i ] != NULL; i++ ) {
|
||||
|
|
@ -1367,7 +1367,7 @@ slapi_send_ldap_search_entry(
|
|||
rs.sr_v2ref = NULL;
|
||||
rs.sr_flags = 0;
|
||||
|
||||
rc = send_search_entry( pb->pop, &rs );
|
||||
rc = send_search_entry( pb->pb_op, &rs );
|
||||
|
||||
slapi_ch_free( (void **)&an );
|
||||
|
||||
|
|
@ -1410,7 +1410,7 @@ slapi_send_ldap_search_reference(
|
|||
rs.sr_v2ref = NULL;
|
||||
}
|
||||
|
||||
rc = send_search_reference( pb->pop, &rs );
|
||||
rc = send_search_reference( pb->pb_op, &rs );
|
||||
|
||||
slapi_ch_free( (void **)&rs.sr_ref );
|
||||
slapi_ch_free( (void **)&rs.sr_v2ref );
|
||||
|
|
@ -1762,7 +1762,7 @@ slapi_filter_test( Slapi_PBlock *pb, Slapi_Entry *e, Slapi_Filter *f,
|
|||
}
|
||||
|
||||
if ( verify_access ) {
|
||||
op = pb->pop;
|
||||
op = pb->pb_op;
|
||||
if ( op == NULL )
|
||||
return LDAP_PARAM_ERROR;
|
||||
} else {
|
||||
|
|
@ -2008,11 +2008,11 @@ int slapi_is_connection_ssl( Slapi_PBlock *pb, int *isSSL )
|
|||
if ( pb == NULL )
|
||||
return LDAP_PARAM_ERROR;
|
||||
|
||||
if ( pb->pconn == NULL )
|
||||
if ( pb->pb_conn == NULL )
|
||||
return LDAP_PARAM_ERROR;
|
||||
|
||||
#ifdef HAVE_TLS
|
||||
*isSSL = pb->pconn->c_is_tls;
|
||||
*isSSL = pb->pb_conn->c_is_tls;
|
||||
#else
|
||||
*isSSL = 0;
|
||||
#endif
|
||||
|
|
@ -2618,9 +2618,9 @@ int slapi_access_allowed( Slapi_PBlock *pb, Slapi_Entry *e, char *attr,
|
|||
break;
|
||||
}
|
||||
|
||||
assert( pb->pop != NULL );
|
||||
assert( pb->pb_op != NULL );
|
||||
|
||||
if ( access_allowed( pb->pop, e, ad, val, slap_access, NULL ) ) {
|
||||
if ( access_allowed( pb->pb_op, e, ad, val, slap_access, NULL ) ) {
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
@ -2632,7 +2632,7 @@ int slapi_acl_check_mods(Slapi_PBlock *pb, Slapi_Entry *e, LDAPMod **mods, char
|
|||
int rc = LDAP_SUCCESS;
|
||||
Modifications *ml;
|
||||
|
||||
if ( pb == NULL || pb->pop == NULL )
|
||||
if ( pb == NULL || pb->pb_op == NULL )
|
||||
return LDAP_PARAM_ERROR;
|
||||
|
||||
ml = slapi_int_ldapmods2modifications( mods, NULL );
|
||||
|
|
@ -2641,7 +2641,7 @@ int slapi_acl_check_mods(Slapi_PBlock *pb, Slapi_Entry *e, LDAPMod **mods, char
|
|||
}
|
||||
|
||||
if ( rc == LDAP_SUCCESS ) {
|
||||
rc = acl_check_modlist( pb->pop, e, ml ) ? LDAP_SUCCESS : LDAP_INSUFFICIENT_ACCESS;
|
||||
rc = acl_check_modlist( pb->pb_op, e, ml ) ? LDAP_SUCCESS : LDAP_INSUFFICIENT_ACCESS;
|
||||
}
|
||||
|
||||
/* Careful when freeing the modlist because it has pointers into the mods array. */
|
||||
|
|
@ -2970,10 +2970,10 @@ int compute_evaluator(computed_attr_context *c, char *type, Slapi_Entry *e, slap
|
|||
int
|
||||
compute_rewrite_search_filter( Slapi_PBlock *pb )
|
||||
{
|
||||
if ( pb == NULL || pb->pop == NULL )
|
||||
if ( pb == NULL || pb->pb_op == NULL )
|
||||
return LDAP_PARAM_ERROR;
|
||||
|
||||
return slapi_int_call_plugins( pb->pop->o_bd, SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN, pb );
|
||||
return slapi_int_call_plugins( pb->pb_op->o_bd, SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN, pb );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue