summaryrefslogtreecommitdiff
path: root/cpp/src/IcePatch/Client.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-07-28 19:12:39 +0000
committerMark Spruiell <mes@zeroc.com>2004-07-28 19:12:39 +0000
commit4ffe73f7edb6156b90051c2064c763c94f998d38 (patch)
tree4210ba8689cb2b5884b648f54313319037ecf47f /cpp/src/IcePatch/Client.cpp
parentIceStorm bug fix (diff)
downloadice-4ffe73f7edb6156b90051c2064c763c94f998d38.tar.bz2
ice-4ffe73f7edb6156b90051c2064c763c94f998d38.tar.xz
ice-4ffe73f7edb6156b90051c2064c763c94f998d38.zip
fixing warnings about Slice checksums
Diffstat (limited to 'cpp/src/IcePatch/Client.cpp')
-rw-r--r--cpp/src/IcePatch/Client.cpp37
1 files changed, 33 insertions, 4 deletions
diff --git a/cpp/src/IcePatch/Client.cpp b/cpp/src/IcePatch/Client.cpp
index 7bcc1a93903..ccbfcaf4bd2 100644
--- a/cpp/src/IcePatch/Client.cpp
+++ b/cpp/src/IcePatch/Client.cpp
@@ -120,6 +120,25 @@ IcePatch::Client::run(int argc, char* argv[])
return EXIT_FAILURE;
}
+ //
+ // Validate checksums of the Glacier Slice definitions.
+ //
+ Ice::SliceChecksumDict starterChecksums = starter->getSliceChecksums();
+ Ice::SliceChecksumDict localChecksums = Ice::sliceChecksums();
+ for(Ice::SliceChecksumDict::const_iterator q = starterChecksums.begin(); q != starterChecksums.end(); ++q)
+ {
+ Ice::SliceChecksumDict::const_iterator r = localChecksums.find(q->first);
+ if(r == localChecksums.end())
+ {
+ cerr << appName() << ": Glacier starter is using unknown Slice type `" << q->first << "'" << endl;
+ }
+ else if(q->second != r->second)
+ {
+ cerr << appName() << ": Glacier starter is using a different Slice definition of `" << q->first
+ << "'" << endl;
+ }
+ }
+
ByteSeq privateKey;
ByteSeq publicKey;
ByteSeq routerCert;
@@ -267,14 +286,24 @@ IcePatch::Client::run(int argc, char* argv[])
return EXIT_FAILURE;
}
+ //
+ // Validate Slice checksums. Note that the client contains more checksums
+ // than the server because the client is linked with Glacier, therefore
+ // we iterate over the server's checksums.
+ //
Ice::SliceChecksumDict serverChecksums = top->getSliceChecksums();
Ice::SliceChecksumDict localChecksums = Ice::sliceChecksums();
- for(Ice::SliceChecksumDict::const_iterator q = localChecksums.begin(); q != localChecksums.end(); ++q)
+ for(Ice::SliceChecksumDict::const_iterator q = serverChecksums.begin(); q != serverChecksums.end(); ++q)
{
- Ice::SliceChecksumDict::const_iterator r = serverChecksums.find(q->first);
- if(r == serverChecksums.end() || q->second != r->second)
+ Ice::SliceChecksumDict::const_iterator r = localChecksums.find(q->first);
+ if(r == localChecksums.end())
+ {
+ cerr << appName() << ": server is using unknown Slice type `" << q->first << "'" << endl;
+ }
+ else if(q->second != r->second)
{
- cerr << appName() << ": server is using different Slice definitions" << endl;
+ cerr << appName() << ": server is using a different Slice definition of `" << q->first << "'"
+ << endl;
}
}