version 1.50, 2004/12/09 08:20:11
|
version 1.51, 2004/12/09 18:52:30
|
Line 1
|
Line 1
|
/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.49 2004/12/09 07:49:54 hyc Exp $ */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.50 2004/12/09 08:20:11 hyc Exp $ */ |
/* syncprov.c - syncrepl provider */ |
/* syncprov.c - syncrepl provider */ |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
* |
* |
Line 1536 syncprov_detach_op( Operation *op, synco
|
Line 1536 syncprov_detach_op( Operation *op, synco
|
} else { |
} else { |
ptr = (char *)(op2->o_hdr + 1); |
ptr = (char *)(op2->o_hdr + 1); |
} |
} |
op2->o_ndn.bv_len = op->o_ndn.bv_len; |
op2->o_authz = op->o_authz; |
op2->o_ndn.bv_val = ptr; |
op2->o_ndn.bv_val = ptr; |
ptr = lutil_strcopy(ptr, op->o_ndn.bv_val) + 1; |
ptr = lutil_strcopy(ptr, op->o_ndn.bv_val) + 1; |
op2->o_dn = op2->o_ndn; |
op2->o_dn = op2->o_ndn; |
Line 1546 syncprov_detach_op( Operation *op, synco
|
Line 1546 syncprov_detach_op( Operation *op, synco
|
op2->o_req_ndn.bv_len = op->o_req_ndn.bv_len; |
op2->o_req_ndn.bv_len = op->o_req_ndn.bv_len; |
op2->o_req_ndn.bv_val = ptr; |
op2->o_req_ndn.bv_val = ptr; |
ptr = lutil_strcopy(ptr, op->o_req_ndn.bv_val) + 1; |
ptr = lutil_strcopy(ptr, op->o_req_ndn.bv_val) + 1; |
op2->ors_filterstr.bv_len = op->ors_filterstr.bv_len; |
|
op2->ors_filterstr.bv_val = ptr; |
op2->ors_filterstr.bv_val = ptr; |
strcpy( ptr, so->s_filterstr.bv_val ); |
strcpy( ptr, so->s_filterstr.bv_val ); |
op2->ors_filterstr.bv_len = so->s_filterstr.bv_len; |
op2->ors_filterstr.bv_len = so->s_filterstr.bv_len; |
Line 1620 syncprov_search_response( Operation *op,
|
Line 1619 syncprov_search_response( Operation *op,
|
} else { |
} else { |
int locked = 0; |
int locked = 0; |
/* It's RefreshAndPersist, transition to Persist phase */ |
/* It's RefreshAndPersist, transition to Persist phase */ |
syncprov_sendinfo( op, rs, ss->ss_present ? |
syncprov_sendinfo( op, rs, ( ss->ss_present && rs->sr_nentries ) ? |
LDAP_TAG_SYNC_REFRESH_PRESENT : LDAP_TAG_SYNC_REFRESH_DELETE, |
LDAP_TAG_SYNC_REFRESH_PRESENT : LDAP_TAG_SYNC_REFRESH_DELETE, |
&cookie, 1, NULL, 0 ); |
&cookie, 1, NULL, 0 ); |
/* Flush any queued persist messages */ |
/* Flush any queued persist messages */ |
Line 1823 syncprov_op_search( Operation *op, SlapR
|
Line 1822 syncprov_op_search( Operation *op, SlapR
|
} |
} |
} |
} |
|
|
|
shortcut: |
/* Append CSN range to search filter, save original filter |
/* Append CSN range to search filter, save original filter |
* for persistent search evaluation |
* for persistent search evaluation |
*/ |
*/ |
Line 1851 syncprov_op_search( Operation *op, SlapR
|
Line 1851 syncprov_op_search( Operation *op, SlapR
|
op->ors_filter = fand; |
op->ors_filter = fand; |
filter2bv_x( op, op->ors_filter, &op->ors_filterstr ); |
filter2bv_x( op, op->ors_filter, &op->ors_filterstr ); |
|
|
shortcut: |
|
/* Let our callback add needed info to returned entries */ |
/* Let our callback add needed info to returned entries */ |
cb = op->o_tmpcalloc(1, sizeof(slap_callback)+sizeof(searchstate), op->o_tmpmemctx); |
cb = op->o_tmpcalloc(1, sizeof(slap_callback)+sizeof(searchstate), op->o_tmpmemctx); |
ss = (searchstate *)(cb+1); |
ss = (searchstate *)(cb+1); |