mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
ITS#3426, copy group ACL cache to saved Op
This commit is contained in:
parent
75c0965cc3
commit
bbe93b5141
@ -1501,6 +1501,7 @@ syncprov_detach_op( Operation *op, syncops *so )
|
||||
int i, alen = 0;
|
||||
size_t size;
|
||||
char *ptr;
|
||||
GroupAssertion *g1, *g2;
|
||||
|
||||
/* count the search attrs */
|
||||
for (i=0; op->ors_attrs && !BER_BVISNULL( &op->ors_attrs[i].an_name ); i++) {
|
||||
@ -1544,6 +1545,16 @@ syncprov_detach_op( Operation *op, syncops *so )
|
||||
op2->o_callback = NULL;
|
||||
so->s_op = op2;
|
||||
|
||||
/* Copy any cached group ACLs individually */
|
||||
op2->o_groups = NULL;
|
||||
for ( g1=op->o_groups; g1; g1=g1->ga_next ) {
|
||||
g2 = ch_malloc( sizeof(GroupAssertion) + g1->ga_len );
|
||||
*g2 = *g1;
|
||||
strcpy( g2->ga_ndn, g1->ga_ndn );
|
||||
g2->ga_next = op2->o_groups;
|
||||
op2->o_groups = g2;
|
||||
}
|
||||
|
||||
/* Increment number of ops so that idletimeout ignores us */
|
||||
ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
|
||||
op->o_conn->c_n_ops_executing++;
|
||||
|
Loading…
Reference in New Issue
Block a user