mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-20 22:59:34 -05:00
ITS#9865 slapd-watcher: add -c contextDN option
This commit is contained in:
parent
95f959e215
commit
c076859e08
1 changed files with 13 additions and 6 deletions
|
|
@ -140,12 +140,13 @@ usage( char *name, char opt )
|
||||||
"[-x | -Y <SASL mech>] "
|
"[-x | -Y <SASL mech>] "
|
||||||
"[-i <interval>] "
|
"[-i <interval>] "
|
||||||
"[-s <sids>] "
|
"[-s <sids>] "
|
||||||
|
"[-c <contextDN>] "
|
||||||
"[-b <baseDN> ] URI[...]\n",
|
"[-b <baseDN> ] URI[...]\n",
|
||||||
name );
|
name );
|
||||||
exit( EXIT_FAILURE );
|
exit( EXIT_FAILURE );
|
||||||
}
|
}
|
||||||
|
|
||||||
struct berval base;
|
struct berval base, cbase;
|
||||||
int interval = 10;
|
int interval = 10;
|
||||||
int numservers;
|
int numservers;
|
||||||
server *servers;
|
server *servers;
|
||||||
|
|
@ -511,9 +512,9 @@ setup_server( struct tester_conn_args *config, server *sv )
|
||||||
}
|
}
|
||||||
ldap_msgfree( res );
|
ldap_msgfree( res );
|
||||||
|
|
||||||
if ( base.bv_val ) {
|
if ( cbase.bv_val ) {
|
||||||
char *attr2[] = { at_contextCSN.bv_val, NULL };
|
char *attr2[] = { at_contextCSN.bv_val, NULL };
|
||||||
rc = ldap_search_ext_s( ld, base.bv_val, LDAP_SCOPE_BASE, "(objectClass=*)",
|
rc = ldap_search_ext_s( ld, cbase.bv_val, LDAP_SCOPE_BASE, "(objectClass=*)",
|
||||||
attr2, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res );
|
attr2, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res );
|
||||||
switch(rc) {
|
switch(rc) {
|
||||||
case LDAP_SUCCESS:
|
case LDAP_SUCCESS:
|
||||||
|
|
@ -574,11 +575,17 @@ main( int argc, char **argv )
|
||||||
config = tester_init( "slapd-watcher", TESTER_TESTER );
|
config = tester_init( "slapd-watcher", TESTER_TESTER );
|
||||||
config->authmethod = LDAP_AUTH_SIMPLE;
|
config->authmethod = LDAP_AUTH_SIMPLE;
|
||||||
|
|
||||||
while ( ( i = getopt( argc, argv, "D:O:R:U:X:Y:b:d:i:s:w:x" ) ) != EOF )
|
while ( ( i = getopt( argc, argv, "D:O:R:U:X:Y:b:c:d:i:s:w:x" ) ) != EOF )
|
||||||
{
|
{
|
||||||
switch ( i ) {
|
switch ( i ) {
|
||||||
case 'b': /* base DN for contextCSN lookups */
|
case 'b': /* base DN for DB entrycount lookups */
|
||||||
ber_str2bv( optarg, 0, 0, &base );
|
ber_str2bv( optarg, 0, 0, &base );
|
||||||
|
if ( !cbase.bv_val )
|
||||||
|
cbase = base;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'c': /* base DN for contextCSN lookups */
|
||||||
|
ber_str2bv( optarg, 0, 0, &cbase );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'i':
|
case 'i':
|
||||||
|
|
@ -690,7 +697,7 @@ server_down1:
|
||||||
}
|
}
|
||||||
if (( servers[i].flags & HAS_BASE ) && !msg2[i] ) {
|
if (( servers[i].flags & HAS_BASE ) && !msg2[i] ) {
|
||||||
char *attrs[2] = { at_contextCSN.bv_val };
|
char *attrs[2] = { at_contextCSN.bv_val };
|
||||||
rc = ldap_search_ext( ld, base.bv_val,
|
rc = ldap_search_ext( ld, cbase.bv_val,
|
||||||
LDAP_SCOPE_BASE, "(objectClass=*)",
|
LDAP_SCOPE_BASE, "(objectClass=*)",
|
||||||
attrs, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &msg2[i] );
|
attrs, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &msg2[i] );
|
||||||
if ( rc != LDAP_SUCCESS ) {
|
if ( rc != LDAP_SUCCESS ) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue