]> git.sur5r.net Git - bacula/bacula/commitdiff
Implement run accurate=yes/no
authorEric Bollengier <eric@baculasystems.com>
Wed, 4 Jan 2012 11:14:03 +0000 (12:14 +0100)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:50:22 +0000 (14:50 +0200)
bacula/src/dird/ua_run.c

index 986473cc3dc4740a3de25d57d6dfc5ee820cc891..878c02971cd2c3242e6e68a9628a37f2c2a08ab8 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2001-2010 Free Software Foundation Europe e.V.
+   Copyright (C) 2001-2012 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
@@ -61,6 +61,8 @@ public:
    bool mod;
    int spool_data;
    bool spool_data_set;
+   int accurate;
+   bool accurate_set;
    int ignoreduplicatecheck;
    bool ignoreduplicatecheck_set;
 
@@ -213,6 +215,10 @@ int modify_job_parameters(UAContext *ua, JCR *jcr, run_ctx &rc)
       jcr->spool_data = rc.spool_data;
    }
 
+   if (rc.accurate_set) {
+      jcr->accurate = rc.accurate;
+   }
+
    /* Used by migration jobs that can have the same name,
     * but can run at the same time
     */
@@ -1202,6 +1208,7 @@ static bool scan_command_line_arguments(UAContext *ua, run_ctx &rc)
       "spooldata",                    /* 26 */
       "comment",                      /* 27 */
       "ignoreduplicatecheck",         /* 28 */
+      "accurate",                     /* 29 */
       NULL
    };
 
@@ -1216,6 +1223,7 @@ static bool scan_command_line_arguments(UAContext *ua, run_ctx &rc)
    rc.fileset_name = NULL;
    rc.verify_job_name = NULL;
    rc.previous_job_name = NULL;
+   rc.accurate_set = false;
    rc.spool_data_set = false;
    rc.ignoreduplicatecheck = false;
    rc.comment = NULL;
@@ -1448,6 +1456,18 @@ static bool scan_command_line_arguments(UAContext *ua, run_ctx &rc)
                   ua->send_msg(_("Invalid ignoreduplicatecheck flag.\n"));
                }
                break;
+            case 29: /* accurate */
+               if (rc.accurate_set) {
+                  ua->send_msg(_("Accurate flag specified twice.\n"));
+                  return false;
+               }
+               if (is_yesno(ua->argv[i], &rc.accurate)) {
+                  rc.accurate_set = true;
+                  kw_ok = true;
+               } else {
+                  ua->send_msg(_("Invalid accurate flag.\n"));
+               }
+               break;
             default:
                break;
             }