[Date Prev][Date Next]
Re: How the backend knows it's being searched by syncprov?
Howard Chu wrote:
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?
Yes, thanks. I meant to add a function like this already but forgot.
If you have one, go ahead. Otherwise I'll commit mine
If we really need global knowledge of this control
back-sql has because it needs to generate appropriate entryCSN values if
searched for syncrepl purposes. At the moment I don't see the need for
any other piece of code.
we can put the #define's and such back into slap.h and controls.c.
#define o_sync_mode ...
would probably be the most useful.
By now I'm keeping it local to back-sql; I'll do as you suggest if required.
SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497