[Date Prev][Date Next]
Re: How the backend knows it's being searched by syncprov?
Pierangelo Masarati wrote:
Update of /repo/OpenLDAP/pkg/ldap/servers/slapd/overlays
syncprov.c 1.24 -> 1.25
to use syncprov on top of back-sql, I need the backend to know it's
being searched for sync replication purposes when filtering for CSN.
To this end, I added a function slap_find_control_id() that returns
the cid for a given control oid; then, to determine if a search is
performed for syncrepl purposes, I'd use
slap_find_control_id( LDAP_CONTROL_SYNC, &sync_cid );
to grab the control's cid at initialization and, when requested to
filter for CSN, I'd test (op->o_controls[sync_cid]).
sync_cid could be a back-sql wide static variable, initialized to -1
and grabbed, for instance, at bi_open(); or it could
even be global scoped, in case other backends need to be syncrepl-aware.
Do you think this is correct?
Hmmm. I think we may need syncrepl to be globally defined after all.
There are problems with backglue (ITS#3133) that were fixed before but
have reappeared with the current setup. Although it mainly seems to be
that the backglue response function doesn't preserve response controls,
so maybe we can fix backglue and the problem will go away. Still testing...
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
Symas: Premier OpenSource Development and Support