]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/runscript.c
Replace explicit checks for "/" with calls to IsPathSeparator, strchr with first_path...
[bacula/bacula] / bacula / src / lib / runscript.c
index 4b851ed5767e7252e8a73c308f3c9eea6225ab26..e01c1da5e246ba91bd2ffed5bdbbb85352b68c6d 100644 (file)
@@ -7,19 +7,32 @@
  *
  */
 /*
-   Copyright (C) 2000-2006 Kern Sibbald
+   Bacula® - The Network Backup Solution
 
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   version 2 as amended with additional clauses defined in the
-   file LICENSE in the main source directory.
+   Copyright (C) 2006-2006 Free Software Foundation Europe e.V.
 
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
-   the file LICENSE for additional details.
+   The main author of Bacula is Kern Sibbald, with contributions from
+   many others, a complete list can be found in the file AUTHORS.
+   This program is Free Software; you can redistribute it and/or
+   modify it under the terms of version two of the GNU General Public
+   License as published by the Free Software Foundation plus additions
+   that are listed in the file LICENSE.
 
- */
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
+
+   Bacula® is a registered trademark of John Walker.
+   The licensor of Bacula is the Free Software Foundation Europe
+   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+   Switzerland, email:ftf@fsfeurope.org.
+*/
 
 
 #include "bacula.h"
@@ -52,6 +65,7 @@ void RUNSCRIPT::reset_default(bool free_strings)
    on_failure = false;
    abort_on_error = true;
    when = SCRIPT_Never;
+   old_proto = false;        /* TODO: drop this with bacula 1.42 */
 }
 
 RUNSCRIPT *copy_runscript(RUNSCRIPT *src)
@@ -120,7 +134,7 @@ int run_scripts(JCR *jcr, alist *runscripts, const char *label)
                                                                                 script->on_success,
                                                                                 script->on_failure,
                                                                                 jcr->JobStatus );
-          runit = true;
+           runit = true;
         }
       }
 
@@ -135,7 +149,7 @@ int run_scripts(JCR *jcr, alist *runscripts, const char *label)
         /* cancel running job properly */
         if (   script->abort_on_error 
             && (status == false) 
-            && (jcr->JobStatus == JS_Created)
+            && (jcr->JobStatus == JS_Created || jcr->JobStatus == JS_Running)
            )
         {
            set_jcr_job_status(jcr, JS_ErrorTerminated);
@@ -202,7 +216,7 @@ int RUNSCRIPT::run(JCR *jcr, const char *name)
    free_pool_memory(ecmd);
    if (bpipe == NULL) {
       berrno be;
-      Jmsg(jcr, M_FATAL, 0, _("%s could not execute. ERR=%s\n"), name,
+      Jmsg(jcr, M_ERROR, 0, _("Runscript: %s could not execute. ERR=%s\n"), name,
          be.strerror());
       return false;
    }
@@ -216,8 +230,8 @@ int RUNSCRIPT::run(JCR *jcr, const char *name)
    status = close_bpipe(bpipe);
    if (status != 0) {
       berrno be;
-      Jmsg(jcr, M_FATAL, 0, _("%s returned non-zero status=%d. ERR=%s\n"), name,
-         status, be.strerror(status));
+      Jmsg(jcr, M_ERROR, 0, _("Runscript: %s returned non-zero status=%d. ERR=%s\n"), name,
+         be.code(status), be.strerror(status));
       return false;
    }
    return true;