]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix #7600 About variable for PreviousJobId in mail messages
authorMichal Rakowski <michal.rakowski@baculasystems.com>
Thu, 22 Jul 2021 15:21:46 +0000 (17:21 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:03 +0000 (09:03 +0100)
bacula/src/dird/dird_conf.c
bacula/src/lib/util.c

index aa9e4f25c86925d6a516cde42f23ee61d794a2d1..be82c4ab103cf82775b7cffb9dc4cacd696ca8d9 100644 (file)
@@ -2754,6 +2754,12 @@ extern "C" char *job_code_callback_director(JCR *jcr, const char* param, char *b
    static char no[] = "no";
    ASSERTD(buflen > 255, "buflen must be long enough to hold an ip address");
 
+   if (!jcr) {
+      /* Guard in case when user wants to use some per-job variable in the daemon's messages */
+      Dmsg1(400, "Got null jcr in the callback for param: %s!\n", param);
+      return NULL;
+   }
+
    switch (param[0]) {
       case 'f':
          if (jcr->fileset) {
@@ -2767,6 +2773,11 @@ extern "C" char *job_code_callback_director(JCR *jcr, const char* param, char *b
             return bstrncpy(buf, tmp.c_str(), buflen);
          }
          break;
+      case 'm':
+         if (jcr->previous_jr.JobId) {
+            return edit_uint64(jcr->previous_jr.JobId, buf);
+         }
+         break;
       case 'p':
          if (jcr->pool) {
             return jcr->pool->name();
index 66736f518521578c59615301e97bb69c8b797fe5..9312e3fb3d6e06d7bec51a33d515b02f8a582e5b 100644 (file)
@@ -842,6 +842,7 @@ void decode_session_key(char *decode, char *session, char *key, int maxlen)
  *  %j = Unique Job id
  *  %l = job level
  *  %n = Unadorned Job name
+ *  %m = Previous JobId for job being copied/migrated
  *  %o = Job Priority
  *  %p = Pool name (Director)
  *  %P = Process PID