]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/syncrepl.c
silence warning
[openldap] / servers / slapd / syncrepl.c
index 717827084966b6097677d1987101df9e03f7c3f3..204f064e97b4540a896794f7c6ed1ee74ddfd07b 100644 (file)
@@ -823,7 +823,7 @@ do_syncrep2(
 
        slap_dup_sync_cookie( &syncCookie_req, &si->si_syncCookie );
 
-       if ( abs(si->si_type) == LDAP_SYNC_REFRESH_AND_PERSIST ) {
+       if ( abs(si->si_type) == LDAP_SYNC_REFRESH_AND_PERSIST && si->si_refreshDone ) {
                tout_p = &tout;
        } else {
                tout_p = NULL;
@@ -1241,6 +1241,9 @@ do_syncrep2(
                                                si->si_refreshDone = 1;
                                        }
                                        ber_scanf( ber, /*"{"*/ "}" );
+                                       if ( abs(si->si_type) == LDAP_SYNC_REFRESH_AND_PERSIST &&
+                                               si->si_refreshDone )
+                                               tout_p = &tout;
                                        break;
                                case LDAP_TAG_SYNC_ID_SET:
                                        Debug( LDAP_DEBUG_SYNC,
@@ -1842,7 +1845,12 @@ static Modifications *mods_dup( Operation *op, Modifications *modlist, int match
                                for (i=0; i<mod->sml_numvals; i++)
                                        mod->sml_nvalues[i] = modlist->sml_nvalues[i];
                                BER_BVZERO(&mod->sml_nvalues[i]);
+                       } else {
+                               mod->sml_nvalues = NULL;
                        }
+               } else {
+                       mod->sml_values = NULL;
+                       mod->sml_nvalues = NULL;
                }
                if ( match < 0 && modlist->sml_op == LDAP_MOD_REPLACE )
                        mod->sml_op = LDAP_MOD_ADD;