]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/util.c
Implement first cut of Copy Job
[bacula/bacula] / bacula / src / lib / util.c
index 74cbfe6e752649b1241addf5fa4a5e99f58d125f..37bfadfaea3a8f8e0b863d83d69e6a86e6b3e152 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2008 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.
@@ -230,6 +230,12 @@ void jobstatus_to_ascii(int JobStatus, char *msg, int maxlen)
    case JS_WaitPriority:
       jobstat = _("Waiting on Priority");
       break;
+   case JS_DataCommitting:
+      jobstat = _("SD committing Data");
+      break;
+   case JS_DataDespooling:
+      jobstat = _("SD despooling Data");
+      break;
    case JS_AttrDespooling:
       jobstat = _("SD despooling Attributes");
       break;
@@ -496,7 +502,7 @@ void make_session_key(char *key, char *seed, int mode)
       char             *p;
 
       p = s;
-      sprintf(s + strlen(s), "%lu", (uint32_t)GetCurrentProcessId());
+      bsnprintf(s + strlen(s), ss, "%lu", (uint32_t)GetCurrentProcessId());
       (void)getcwd(s + strlen(s), 256);
       bsnprintf(s + strlen(s), ss, "%lu", (uint32_t)GetTickCount());
       QueryPerformanceCounter(&li);
@@ -609,7 +615,7 @@ void decode_session_key(char *decode, char *session, char *key, int maxlen)
  *  to = recepients list
  *
  */
-POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to)
+POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to, job_code_callback_t callback)
 {
    char *p, *q;
    const char *str;
@@ -707,10 +713,17 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to)
             }
             break;
          default:
-            add[0] = '%';
-            add[1] = *p;
-            add[2] = 0;
-            str = add;
+            str = NULL;
+            if (callback != NULL) {
+                str = callback(jcr, p);
+            }
+
+            if (!str) {
+                add[0] = '%';
+                add[1] = *p;
+                add[2] = 0;
+                str = add;
+            }
             break;
          }
       } else {