]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/verify.c
Fix a cosmetic bug that caused spurious OpenSSL error messages; there is no reason...
[bacula/bacula] / bacula / src / filed / verify.c
index 850c9596733809366867896c0b6ccc1b9c2c809c..4d5ae5ab2e5f68ebbeb267bad911d3a1d1eca305 100644 (file)
@@ -158,10 +158,10 @@ static int verify_file(FF_PKT *ff_pkt, void *pkt, bool top_level)
    encode_stat(attribs, ff_pkt, 0);
    encode_attribsEx(jcr, attribsEx, ff_pkt);
 
-   P(jcr->mutex);
+   jcr->lock();
    jcr->JobFiles++;                  /* increment number of files sent */
    pm_strcpy(jcr->last_fname, ff_pkt->fname);
-   V(jcr->mutex);
+   jcr->unlock();
 
    /*
     * Send file attributes to Director
@@ -207,11 +207,11 @@ static int verify_file(FF_PKT *ff_pkt, void *pkt, bool top_level)
        * and not used.
        */
       if (ff_pkt->flags & FO_MD5) {
-        digest = crypto_digest_new(CRYPTO_DIGEST_MD5);
+         digest = crypto_digest_new(CRYPTO_DIGEST_MD5);
          digest_stream = STREAM_MD5_DIGEST;
 
       } else if (ff_pkt->flags & FO_SHA1) {
-        digest = crypto_digest_new(CRYPTO_DIGEST_SHA1);
+         digest = crypto_digest_new(CRYPTO_DIGEST_SHA1);
          digest_stream = STREAM_SHA1_DIGEST;
 
       } else if (ff_pkt->flags & FO_SHA256) {
@@ -232,24 +232,24 @@ static int verify_file(FF_PKT *ff_pkt, void *pkt, bool top_level)
       /* compute MD5 or SHA1 hash */
       if (digest) {
          char md[CRYPTO_DIGEST_MAX_SIZE];
-         size_t size;
+         uint32_t size;
 
          size = sizeof(md);
-        
+         
          if (digest_file(jcr, ff_pkt, digest) != 0) {
             jcr->Errors++;
             return 1;
          }
 
-         if (crypto_digest_finalize(digest, &md, &size) == true) {
+         if (crypto_digest_finalize(digest, (uint8_t *)md, &size)) {
             char *digest_buf;
             const char *digest_name;
-           
-            digest_buf = (char *) malloc(BASE64_SIZE(size));
+            
+            digest_buf = (char *)malloc(BASE64_SIZE(size));
             digest_name = crypto_digest_name(digest);
 
-            bin_to_base64(digest_buf, (char *) md, size);
-           Dmsg3(400, "send inx=%d %s=%s\n", jcr->JobFiles, digest_name, digest_buf);
+            bin_to_base64(digest_buf, BASE64_SIZE(size), md, size, true);
+            Dmsg3(400, "send inx=%d %s=%s\n", jcr->JobFiles, digest_name, digest_buf);
             bnet_fsend(dir, "%d %d %s *%s-%d*", jcr->JobFiles, digest_stream, digest_buf,
                        digest_name, jcr->JobFiles);
             Dmsg3(20, "bfiled>bdird: %s len=%d: msg=%s\n", digest_name,
@@ -277,7 +277,8 @@ int digest_file(JCR *jcr, FF_PKT *ff_pkt, DIGEST *digest)
 
    if (ff_pkt->statp.st_size > 0 || ff_pkt->type == FT_RAW
          || ff_pkt->type == FT_FIFO) {
-      if ((bopen(&bfd, ff_pkt->fname, O_RDONLY | O_BINARY, 0)) < 0) {
+      int noatime = ff_pkt->flags & FO_NOATIME ? O_NOATIME : 0;
+      if ((bopen(&bfd, ff_pkt->fname, O_RDONLY | O_BINARY | noatime, 0)) < 0) {
          ff_pkt->ff_errno = errno;
          berrno be;
          be.set_errno(bfd.berrno);
@@ -307,7 +308,7 @@ int digest_file(JCR *jcr, FF_PKT *ff_pkt, DIGEST *digest)
    }
 
    if (digest && ff_pkt->flags & FO_HFSPLUS) {
-      crypto_digest_update(digest, ff_pkt->hfsinfo.fndrinfo, 32);
+      crypto_digest_update(digest, (uint8_t *)ff_pkt->hfsinfo.fndrinfo, 32);
    }
 #endif
 
@@ -323,8 +324,8 @@ int read_digest(BFILE *bfd, DIGEST *digest, JCR *jcr)
    char buf[DEFAULT_NETWORK_BUFFER_SIZE];
    int64_t n;
 
-   while ((n=bread(bfd, &buf, sizeof(buf))) > 0) {
-      crypto_digest_update(digest, &buf, n);
+   while ((n=bread(bfd, buf, sizeof(buf))) > 0) {
+      crypto_digest_update(digest, (uint8_t *)buf, n);
       jcr->JobBytes += n;
       jcr->ReadBytes += n;
    }