From: Quanah Gibson-Mount Date: Sun, 22 Nov 2009 17:28:23 +0000 (+0000) Subject: use macros for fake connid X-Git-Tag: OPENLDAP_REL_ENG_2_4_20~16 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ca09d2dca8ffa7ca9676acafa6edd80d68f9021c;p=openldap use macros for fake connid --- diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index b003354219..1032008353 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -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 ) ) ); } diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 2f426d6106..7f8331f532 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -48,7 +48,7 @@ static ldap_pvt_thread_mutex_t connections_mutex; static Connection *connections = NULL; static ldap_pvt_thread_mutex_t conn_nextid_mutex; -static unsigned long conn_nextid = 0; +static unsigned long conn_nextid = SLAPD_SYNC_SYNCCONN_OFFSET; static const char conn_lost_str[] = "connection lost"; diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 6015dbf837..076b898a5b 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -1703,6 +1703,13 @@ struct syncinfo_s; #define SLAP_SYNC_RID_MAX 999 #define SLAP_SYNC_SID_MAX 4095 /* based on liblutil/csn.c field width */ + +/* fake conn connid constructed as rid; real connids start + * at SLAPD_SYNC_CONN_OFFSET */ +#define SLAPD_SYNC_SYNCCONN_OFFSET (SLAP_SYNC_RID_MAX + 1) +#define SLAPD_SYNC_IS_SYNCCONN(connid) ((connid) < SLAPD_SYNC_SYNCCONN_OFFSET) +#define SLAPD_SYNC_RID2SYNCCONN(rid) (rid) + #define SLAP_SYNCUUID_SET_SIZE 256 struct sync_cookie { diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 414ab32506..a9b3d7150b 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -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; diff --git a/tests/data/monitor1.out b/tests/data/monitor1.out index 06beecc891..59192485ae 100644 --- a/tests/data/monitor1.out +++ b/tests/data/monitor1.out @@ -1,4 +1,4 @@ -dn: cn=Connection 1,cn=Connections,cn=Monitor +dn: cn=Connection 1001,cn=Connections,cn=Monitor structuralObjectClass: monitorConnection monitorConnectionProtocol: 3 monitorConnectionOpsReceived: 2 @@ -11,7 +11,7 @@ monitorConnectionWrite: 0 monitorConnectionMask: rx monitorConnectionListener: ldap://localhost:@PORT1@/ monitorConnectionLocalAddress: IP=127.0.0.1:@PORT1@ -entryDN: cn=Connection 1,cn=Connections,cn=Monitor +entryDN: cn=Connection 1001,cn=Connections,cn=Monitor dn: cn=Connections,cn=Monitor structuralObjectClass: monitorContainer