]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/bls.c
Implement first cut DCR in SD
[bacula/bacula] / bacula / src / stored / bls.c
index 69c75b58ff50cce1f11bfbff68361ecd2a16fce8..29f96f0ee38ebb115d26c62936464c27f074d64c 100644 (file)
 #include "stored.h"
 #include "findlib/find.h"
 
-#ifdef HAVE_CYGWIN
+#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32)
 int win32_client = 1;
 #else
 int win32_client = 0;
 #endif
 
-
 static void do_blocks(char *infname);
 static void do_jobs(char *infname);
 static void do_ls(char *fname);
@@ -73,7 +72,9 @@ static void usage()
 "       -i <file>       include list\n"
 "       -j              list jobs\n"
 "       -k              list blocks\n"
-"    (none of above)    list saved files\n"
+"    (no j or k option) list saved files\n"
+"       -L              dump label\n"
+"       -p              proceed inspite of errors\n"
 "       -v              be verbose\n"
 "       -V              specify Volume names (separated by |)\n"
 "       -?              print this message\n\n");
@@ -88,6 +89,7 @@ int main (int argc, char *argv[])
    char line[1000];
    char *VolumeName= NULL;
    char *bsrName = NULL;
+   bool ignore_label_errors = false;
 
    working_directory = "/tmp";
    my_name_is(argc, argv, "bls");
@@ -96,7 +98,7 @@ int main (int argc, char *argv[])
    memset(&ff, 0, sizeof(ff));
    init_include_exclude_files(&ff);
 
-   while ((ch = getopt(argc, argv, "b:c:d:e:i:jkLtvV:?")) != -1) {
+   while ((ch = getopt(argc, argv, "b:c:d:e:i:jkLpvV:?")) != -1) {
       switch (ch) {
       case 'b':
         bsrName = optarg;
@@ -155,6 +157,10 @@ int main (int argc, char *argv[])
         dump_label = TRUE;
         break;
 
+      case 'p':
+        ignore_label_errors = true;
+        break;
+
       case 'v':
         verbose++;
         break;
@@ -192,6 +198,7 @@ int main (int argc, char *argv[])
         bsr = parse_bsr(NULL, bsrName);
       }
       jcr = setup_jcr("bls", argv[i], bsr, VolumeName);
+      jcr->ignore_label_errors = ignore_label_errors;
       dev = setup_to_access_device(jcr, 1);   /* acquire for read */
       if (!dev) {
         exit(1);
@@ -227,7 +234,7 @@ Warning, this Volume is a continuation of Volume %s\n",
 
 static void do_close(JCR *jcr)
 {
-   release_device(jcr, dev);
+   release_device(jcr);
    free_attr(attr);
    term_dev(dev);
    free_record(rec);
@@ -302,7 +309,7 @@ static void do_blocks(char *infname)
 }
 
 /*
- * We are only looking for labels or in particula Job Session records
+ * We are only looking for labels or in particular Job Session records
  */
 static int jobs_cb(JCR *jcr, DEVICE *dev, DEV_BLOCK *block, DEV_RECORD *rec)
 {