diff --git a/CHANGES b/CHANGES index d71e3a594e91c012f0e562ea79b37445cab383b3..35f3a4866622f1c38ea26cb6d76e7fae8851c1d2 100644 --- a/CHANGES +++ b/CHANGES @@ -3,9 +3,10 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.20 Engineering Fixed libldap uninitialized return value (ITS#6355) Fixed liblutil constant (ITS#5909) + Added slapd handling of hex server IDs (ITS#6297) Fixed slapd inclusion of ac/unistd.h (ITS#6342) Fixed slapd debug handling of LDAP_DEBUG_ANY (ITS#6324) - Fixed slapd termination for one level dns (ITS#6338) + Fixed slapd termination for one level DNs (ITS#6338) Fixed slapd-bdb cache corruption (ITS#6341) Fixed slapd-ldap leak (ITS#6326) Fixed slapd-relay bind segfault (ITS#6337) @@ -15,6 +16,8 @@ OpenLDAP 2.4.20 Engineering Fixed slapd MAXPATHLEN handling (ITS#6342) Documentation ldap_get_dn(3) typos (ITS#5366) + slapd.conf(5) note hex server IDs (ITS#6297) + slapd-config(5) note hex server IDs (ITS#6297) OpenLDAP 2.4.19 Release (2009/10/06) Fixed client tools with null timeouts (ITS#6282) diff --git a/doc/man/man5/slapd-config.5 b/doc/man/man5/slapd-config.5 index ffbf6f06550af60a2e7b717ab9a688830bb6b9bc..a646deecefb2e575354970eb662e566c281d2b7f 100644 --- a/doc/man/man5/slapd-config.5 +++ b/doc/man/man5/slapd-config.5 @@ -723,7 +723,10 @@ property specifies the maximum security layer receive buffer size allowed. 0 disables security layers. The default is 65536. .TP .B olcServerID: <integer> [<URL>] -Specify an integer ID from 0 to 4095 for this server. These IDs are +Specify an integer ID from 0 to 4095 for this server (limited +to 3 hexadecimal digits). The ID may also be specified as a +hexadecimal ID by prefixing the value with "0x". +These IDs are required when using multimaster replication and each master must have a unique ID. Note that this requirement also applies to separate masters contributing to a glued set of databases. diff --git a/doc/man/man5/slapd.conf.5 b/doc/man/man5/slapd.conf.5 index a641d7cbebd1472a927ac8b3801a9b571b9abaa8..0ff35429e9b95152b43186ba71dd4fd058ebd07a 100644 --- a/doc/man/man5/slapd.conf.5 +++ b/doc/man/man5/slapd.conf.5 @@ -915,7 +915,8 @@ e.g. ldapi:// (and eventually IPSEC). It is not normally used. .TP .B serverID <integer> [<URL>] Specify an integer ID from 0 to 4095 for this server (limited -to 3 hexadecimal digits). +to 3 hexadecimal digits). The ID may also be specified as a +hexadecimal ID by prefixing the value with "0x". These IDs are required when using multimaster replication and each master must have a unique ID. Note that this requirement also applies to separate masters diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index e1feb5624972bb044a727e112ef10704e62aae71..76d5b853e713a3e41e18bfab4bc33385edb65d33 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -1784,7 +1784,8 @@ sortval_reject: ServerID *si, **sip; LDAPURLDesc *lud; int num; - if ( lutil_atoi( &num, c->argv[1] ) || + if (( lutil_atoi( &num, c->argv[1] ) && + lutil_atoix( &num, c->argv[1], 16 )) || num < 0 || num > SLAP_SYNC_SID_MAX ) { snprintf( c->cr_msg, sizeof( c->cr_msg ), @@ -1829,7 +1830,7 @@ sortval_reject: BER_BVZERO( &si->si_url ); slap_serverID = num; Debug( LDAP_DEBUG_CONFIG, - "%s: SID=%d\n", + "%s: SID=0x%03x\n", c->log, slap_serverID, 0 ); } si->si_next = NULL; @@ -1842,7 +1843,7 @@ sortval_reject: if ( l ) { slap_serverID = si->si_num; Debug( LDAP_DEBUG_CONFIG, - "%s: SID=%d (listener=%s)\n", + "%s: SID=0x%03x (listener=%s)\n", c->log, slap_serverID, l->sl_url.bv_val ); }