]> git.sur5r.net Git - openldap/commitdiff
use macros for fake connid
authorPierangelo Masarati <ando@openldap.org>
Sat, 21 Nov 2009 21:02:49 +0000 (21:02 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sat, 21 Nov 2009 21:02:49 +0000 (21:02 +0000)
servers/slapd/backend.c
servers/slapd/slap.h
servers/slapd/syncrepl.c

index b003354219566b2c49ee8321537d4f698eef2960..10320083539bce051c684869cd3659fb2bb649dc 100644 (file)
@@ -762,7 +762,7 @@ be_shadow_update( Operation *op )
        /* This assumes that all internal ops (connid <= -1000) on a syncrepl
         * database are syncrepl operations.
         */
-       return (( SLAP_SYNC_SHADOW( op->o_bd ) && op->o_connid <= -1000 ) ||
+       return ( ( SLAP_SYNC_SHADOW( op->o_bd ) && SLAPD_SYNC_IS_SYNCCONN( op->o_connid ) ) ||
                ( SLAP_SHADOW( op->o_bd ) && be_isupdate_dn( op->o_bd, &op->o_ndn ) ) );
 }
 
index 6015dbf8377bf6ccd76be9b2204e7bef1e8a3741..bc31eea45ed6459b51dd93c0b2c26130dd30c0a8 100644 (file)
@@ -1701,6 +1701,11 @@ typedef BackendDB Backend;
 
 struct syncinfo_s;
 
+/* fake conn connid constructed as SLAPD_SYNC_CONN_OFFSET - rid */
+#define SLAPD_SYNC_SYNCCONN_OFFSET (-1000)
+#define SLAPD_SYNC_IS_SYNCCONN(connid) ((connid) <= SLAPD_SYNC_SYNCCONN_OFFSET)
+#define SLAPD_SYNC_RID2SYNCCONN(rid) (SLAPD_SYNC_SYNCCONN_OFFSET - (rid))
+
 #define SLAP_SYNC_RID_MAX      999
 #define SLAP_SYNC_SID_MAX      4095    /* based on liblutil/csn.c field width */
 #define SLAP_SYNCUUID_SET_SIZE 256
index 414ab32506e4f41169fbbf79df0c18ea53357073..a9b3d7150bf5231a4ea035c4845da4cadfe1395c 100644 (file)
@@ -1354,7 +1354,7 @@ do_syncrepl(
        connection_fake_init( &conn, &opbuf, ctx );
        op = &opbuf.ob_op;
        /* o_connids must be unique for slap_graduate_commit_csn */
-       op->o_connid = -1000 - si->si_rid;
+       op->o_connid = SLAPD_SYNC_RID2SYNCCONN(si->si_rid);
 
        op->o_managedsait = SLAP_CONTROL_NONCRITICAL;
        be = si->si_be;