From ca09d2dca8ffa7ca9676acafa6edd80d68f9021c Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Sun, 22 Nov 2009 17:28:23 +0000 Subject: [PATCH] use macros for fake connid --- servers/slapd/backend.c | 2 +- servers/slapd/connection.c | 2 +- servers/slapd/slap.h | 7 +++++++ servers/slapd/syncrepl.c | 2 +- tests/data/monitor1.out | 4 ++-- 5 files changed, 12 insertions(+), 5 deletions(-) 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 -- GitLab