]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/syncprov.c
More for prev commit - set entryCSN as well.
[openldap] / servers / slapd / overlays / syncprov.c
index 70dc6ff9e83f092a9440bbbecbb1f37d74d1c39f..a62d0a0d0d8829ca15a8d54f9adcb78d6aafc56a 100644 (file)
@@ -450,12 +450,10 @@ syncprov_findbase( Operation *op, fbase_cookie *fc )
                case LDAP_SCOPE_SUBTREE:
                        fc->fscope = dnIsSuffix( fc->fdn, &fc->fss->s_base );
                        break;
-#ifdef LDAP_SCOPE_SUBORDINATE
                case LDAP_SCOPE_SUBORDINATE:
                        fc->fscope = dnIsSuffix( fc->fdn, &fc->fss->s_base ) &&
                                !dn_match( fc->fdn, &fc->fss->s_base );
                        break;
-#endif
                }
        }
 
@@ -2195,8 +2193,31 @@ sp_cf_gen(ConfigArgs *c)
        }
        switch ( c->type ) {
        case SP_CHKPT:
-               si->si_chkops = atoi( c->argv[1] );
-               si->si_chktime = atoi( c->argv[2] ) * 60;
+               if ( lutil_atoi( &si->si_chkops, c->argv[1] ) != 0 ) {
+                       sprintf( c->msg, "%s unable to parse checkpoint ops # \"%s\"",
+                               c->argv[0], c->argv[1] );
+                       Debug( LDAP_DEBUG_CONFIG, "%s: %s\n", c->log, c->msg, 0 );
+                       return ARG_BAD_CONF;
+               }
+               if ( si->si_chkops <= 0 ) {
+                       sprintf( c->msg, "%s invalid checkpoint ops # \"%d\"",
+                               c->argv[0], si->si_chkops );
+                       Debug( LDAP_DEBUG_CONFIG, "%s: %s\n", c->log, c->msg, 0 );
+                       return ARG_BAD_CONF;
+               }
+               if ( lutil_atoi( &si->si_chktime, c->argv[2] ) != 0 ) {
+                       sprintf( c->msg, "%s unable to parse checkpoint time \"%s\"",
+                               c->argv[0], c->argv[1] );
+                       Debug( LDAP_DEBUG_CONFIG, "%s: %s\n", c->log, c->msg, 0 );
+                       return ARG_BAD_CONF;
+               }
+               if ( si->si_chktime <= 0 ) {
+                       sprintf( c->msg, "%s invalid checkpoint time \"%d\"",
+                               c->argv[0], si->si_chkops );
+                       Debug( LDAP_DEBUG_CONFIG, "%s: %s\n", c->log, c->msg, 0 );
+                       return ARG_BAD_CONF;
+               }
+               si->si_chktime *= 60;
                break;
        case SP_SESSL: {
                sessionlog *sl;
@@ -2516,7 +2537,7 @@ static int syncprov_parseCtrl (
 static slap_overinst           syncprov;
 
 int
-syncprov_init()
+syncprov_initialize()
 {
        int rc;
 
@@ -2561,7 +2582,7 @@ syncprov_init()
 int
 init_module( int argc, char *argv[] )
 {
-       return syncprov_init();
+       return syncprov_initialize();
 }
 #endif /* SLAPD_OVER_SYNCPROV == SLAPD_MOD_DYNAMIC */