diff --git a/urbackupclient/client.cpp b/urbackupclient/client.cpp index 3bc87267..2758dd4a 100644 --- a/urbackupclient/client.cpp +++ b/urbackupclient/client.cpp @@ -1150,43 +1150,40 @@ std::vector IndexThread::getFilesProxy(const std::wstring &orig_pa std::vector changed_files=cd->getChangedFiles((*it_dir).id); std::sort(changed_files.begin(), changed_files.end()); - if(!changed_files.empty()) + for(size_t i=0;igetRandomNumber(); - if(tmp[i].last_modified>0) - tmp[i].last_modified*=-1; - else if(tmp[i].last_modified==0) - tmp[i].last_modified=-1; - } - else + tmp[i].last_modified*=Server->getRandomNumber(); + if(tmp[i].last_modified>0) + tmp[i].last_modified*=-1; + else if(tmp[i].last_modified==0) + tmp[i].last_modified=-1; + } + else + { + std::vector::const_iterator it_db_file=std::lower_bound(db_files.begin(), db_files.end(), tmp[i]); + if( it_db_file!=db_files.end() + && (*it_db_file).name==tmp[i].name + && (*it_db_file).isdir==tmp[i].isdir + && (*it_db_file).last_modified<0 ) { - std::vector::const_iterator it_db_file=std::lower_bound(db_files.begin(), db_files.end(), tmp[i]); - if( it_db_file!=db_files.end() - && (*it_db_file).name==tmp[i].name - && (*it_db_file).isdir==tmp[i].isdir - && (*it_db_file).last_modified<0 ) + VSSLog(L"File changed at last backup: "+ tmp[i].name, LL_DEBUG); + + if( tmp[i].last_modifiedlast_modified; - } - else - { - VSSLog("Modification time indicates the file may have another change", LL_DEBUG); - tmp[i].last_modified*=Server->getRandomNumber(); - if(tmp[i].last_modified>0) - tmp[i].last_modified*=-1; - } + tmp[i].last_modified=it_db_file->last_modified; + } + else + { + VSSLog("Modification time indicates the file may have another change", LL_DEBUG); + tmp[i].last_modified*=Server->getRandomNumber(); + if(tmp[i].last_modified>0) + tmp[i].last_modified*=-1; } } }