]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/bscan.c
This commit was manufactured by cvs2svn to create tag
[bacula/bacula] / bacula / src / stored / bscan.c
index d88a10991a5f37662e2bfa0c7ad3d7f004144caa..68ff836e263993a00eef79af22bf220c01349947 100644 (file)
@@ -10,7 +10,7 @@
  *   Version $Id$
  */
 /*
-   Copyright (C) 2001-2006 Kern Sibbald
+   Copyright (C) 2001-2005 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
@@ -48,7 +48,7 @@ static int  create_client_record(B_DB *db, CLIENT_DBR *cr);
 static int  create_fileset_record(B_DB *db, FILESET_DBR *fsr);
 static int  create_jobmedia_record(B_DB *db, JCR *jcr);
 static JCR *create_jcr(JOB_DBR *jr, DEV_RECORD *rec, uint32_t JobId);
-static int update_digest_record(B_DB *db, char *digest, DEV_RECORD *rec, int type);
+static int update_SIG_record(B_DB *db, char *SIGbuf, DEV_RECORD *rec, int type);
 
 
 /* Global variables */
@@ -292,7 +292,7 @@ int main (int argc, char *argv[])
    }
 
    free_jcr(bjcr);
-   dev->term();
+   term_dev(dev);
    return 0;
 }
 
@@ -373,7 +373,6 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec)
    DEVICE *dev = dcr->dev;
    JCR *bjcr = dcr->jcr;
    DEV_BLOCK *block = dcr->block;
-   char digest[BASE64_SIZE(CRYPTO_DIGEST_MAX_SIZE)];
 
    if (rec->data_len > 0) {
       mr.VolBytes += rec->data_len + WRITE_RECHDR_LENGTH; /* Accumulate Volume bytes */
@@ -702,51 +701,24 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec)
       free_jcr(mjcr);                 /* done using JCR */
       break;
 
-   case STREAM_MD5_DIGEST:
-      bin_to_base64(digest, (char *)rec->data, CRYPTO_DIGEST_MD5_SIZE);
+   case STREAM_MD5_SIGNATURE:
+      char MD5buf[50];
+      bin_to_base64(MD5buf, (char *)rec->data, 16); /* encode 16 bytes */
       if (verbose > 1) {
-         Pmsg1(000, _("Got MD5 record: %s\n"), digest);
+         Pmsg1(000, _("Got MD5 record: %s\n"), MD5buf);
       }
-      update_digest_record(db, digest, rec, CRYPTO_DIGEST_MD5);
+      update_SIG_record(db, MD5buf, rec, MD5_SIG);
       break;
 
-   case STREAM_SHA1_DIGEST:
-      bin_to_base64(digest, (char *)rec->data, CRYPTO_DIGEST_SHA1_SIZE);
+   case STREAM_SHA1_SIGNATURE:
+      char SIGbuf[50];
+      bin_to_base64(SIGbuf, (char *)rec->data, 20); /* encode 20 bytes */
       if (verbose > 1) {
-         Pmsg1(000, _("Got SHA1 record: %s\n"), digest);
+         Pmsg1(000, _("Got SHA1 record: %s\n"), SIGbuf);
       }
-      update_digest_record(db, digest, rec, CRYPTO_DIGEST_SHA1);
+      update_SIG_record(db, SIGbuf, rec, SHA1_SIG);
       break;
 
-   case STREAM_SHA256_DIGEST:
-      bin_to_base64(digest, (char *)rec->data, CRYPTO_DIGEST_SHA256_SIZE);
-      if (verbose > 1) {
-         Pmsg1(000, _("Got SHA256 record: %s\n"), digest);
-      }
-      update_digest_record(db, digest, rec, CRYPTO_DIGEST_SHA256);
-      break;
-
-   case STREAM_SHA512_DIGEST:
-      bin_to_base64(digest, (char *)rec->data, CRYPTO_DIGEST_SHA512_SIZE);
-      if (verbose > 1) {
-         Pmsg1(000, _("Got SHA512 record: %s\n"), digest);
-      }
-      update_digest_record(db, digest, rec, CRYPTO_DIGEST_SHA512);
-      break;
-
-   case STREAM_ENCRYPTED_SESSION_DATA:
-      // TODO landonf: Investigate crypto support in bscan
-      if (verbose > 1) {
-         Pmsg0(000, _("Got signed digest record\n"));
-      }
-      break;
-
-   case STREAM_SIGNED_DIGEST:
-      // TODO landonf: Investigate crypto support in bscan
-      if (verbose > 1) {
-         Pmsg0(000, _("Got signed digest record\n"));
-      }
-      break;
 
    case STREAM_PROGRAM_NAMES:
       if (verbose) {
@@ -1178,7 +1150,7 @@ static int create_jobmedia_record(B_DB *db, JCR *mjcr)
 /*
  * Simulate the database call that updates the MD5/SHA1 record
  */
-static int update_digest_record(B_DB *db, char *digest, DEV_RECORD *rec, int type)
+static int update_SIG_record(B_DB *db, char *SIGbuf, DEV_RECORD *rec, int type)
 {
    JCR *mjcr;
 
@@ -1198,7 +1170,7 @@ static int update_digest_record(B_DB *db, char *digest, DEV_RECORD *rec, int typ
       return 1;
    }
 
-   if (!db_add_digest_to_file_record(bjcr, db, mjcr->FileId, digest, type)) {
+   if (!db_add_SIG_to_file_record(bjcr, db, mjcr->FileId, SIGbuf, type)) {
       Pmsg1(0, _("Could not add MD5/SHA1 to File record. ERR=%s\n"), db_strerror(db));
       free_jcr(mjcr);
       return 0;
@@ -1252,7 +1224,10 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr)
    DEVICE *dev = dcr->dev;
    Dmsg0(20, "Enter dir_ask_sysop_to_mount_volume\n");
    /* Close device so user can use autochanger if desired */
-   dev->close();
+   if (dev_cap(dev, CAP_OFFLINEUNMOUNT)) {
+      offline_dev(dev);
+   }
+   force_close_device(dev);
    fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
          dcr->VolumeName, dev->print_name());
    getchar();