summaryrefslogtreecommitdiff
path: root/bin/bbackupquery
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2009-01-04 13:43:54 +0000
committerChris Wilson <chris+github@qwirx.com>2009-01-04 13:43:54 +0000
commit6a5fa78ebb1178d97d18ea533f3be0a700667511 (patch)
tree08b2eeba4a37b6fd4e008755052a97a0045ce81c /bin/bbackupquery
parent4c118b664a47228a06b8cdec94e4d92049c7f78e (diff)
Move stream comparison code out of BackupQueries::Compare to
FileStream class.
Diffstat (limited to 'bin/bbackupquery')
-rw-r--r--bin/bbackupquery/BackupQueries.cpp29
1 files changed, 1 insertions, 28 deletions
diff --git a/bin/bbackupquery/BackupQueries.cpp b/bin/bbackupquery/BackupQueries.cpp
index 85f659d4..c63b964a 100644
--- a/bin/bbackupquery/BackupQueries.cpp
+++ b/bin/bbackupquery/BackupQueries.cpp
@@ -1728,34 +1728,7 @@ void BackupQueries::Compare(int64_t DirID, const std::string &rStoreDir,
SelfFlushingStream flushFile(*fileOnServerStream);
// Open the local file
FileStream l(localPath.c_str());
-
- // Size
- IOStream::pos_type fileSizeLocal = l.BytesLeftToRead();
- IOStream::pos_type fileSizeServer = 0;
-
- // Test the contents
- char buf1[2048];
- char buf2[2048];
- while(fileOnServerStream->StreamDataLeft() && l.StreamDataLeft())
- {
- int size = fileOnServerStream->Read(buf1, sizeof(buf1), mrConnection.GetTimeout());
- fileSizeServer += size;
-
- if(l.Read(buf2, size) != size
- || ::memcmp(buf1, buf2, size) != 0)
- {
- equal = false;
- break;
- }
- }
-
- // Check read all the data from the server and file -- can't be equal if local and remote aren't the same length
- // Can't use StreamDataLeft() test on file, because if it's the same size, it won't know
- // it's EOF yet.
- if(fileOnServerStream->StreamDataLeft() || fileSizeServer != fileSizeLocal)
- {
- equal = false;
- }
+ equal = l.CompareWith(fileOnServerStream, mrConnection.GetTimeout());
}
}