Rework hash implementations to provide additional algorithms.
[cumulus.git] / store.cc
index aa69d9e..f87b671 100644 (file)
--- a/store.cc
+++ b/store.cc
@@ -41,6 +41,7 @@
 #include <string>
 #include <iostream>
 
+#include "hash.h"
 #include "store.h"
 #include "ref.h"
 #include "util.h"
@@ -172,7 +173,7 @@ void Tarfile::write_object(int id, const char *data, size_t len)
     sprintf(header.mode, "%07o", 0600);
     sprintf(header.uid, "%07o", 0);
     sprintf(header.gid, "%07o", 0);
-    sprintf(header.size, "%011o", len);
+    sprintf(header.size, "%011o", (int)len);
     sprintf(header.mtime, "%011o", (int)time(NULL));
     header.typeflag = '0';
     strcpy(header.magic, "ustar  ");
@@ -281,7 +282,7 @@ void TarSegmentStore::dump_stats()
     for (map<string, pair<int64_t, int64_t> >::iterator i = group_sizes.begin();
          i != group_sizes.end(); ++i) {
         printf("    %s: %lld (%lld compressed)\n", i->first.c_str(),
-               i->second.first, i->second.second);
+               (long long)i->second.first, (long long)i->second.second);
     }
 }
 
@@ -338,7 +339,8 @@ void LbsObject::checksum()
 {
     assert(written);
 
-    SHA1Checksum hash;
-    hash.process(data, data_len);
-    ref.set_checksum(hash.checksum_str());
+    Hash *hash = Hash::New();
+    hash->update(data, data_len);
+    ref.set_checksum(hash->digest_str());
+    delete hash;
 }