]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/pythonlib.c
- Add code to ensure that reserved but unused volumes
[bacula/bacula] / bacula / src / lib / pythonlib.c
index 378c85036af27fc42c323f93d0d5fdf9c1704e56..8cf4981c5a5f386556abc464e392d4b3958e70b0 100644 (file)
@@ -7,24 +7,18 @@
  *   Version $Id$
  *
  */
-
 /*
    Copyright (C) 2004-2005 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of
-   the License, or (at your option) any later version.
+   modify it under the terms of the GNU General Public License
+   version 2 as ammended with additional clauses defined in the
+   file LICENSE in the main source directory.
 
    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., 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
+   the file LICENSE for additional details.
 
  */
 
@@ -120,7 +114,7 @@ void init_python_interpreter(const char *progname, const char *scripts,
    JobType.tp_doc = "Bacula Job object";
    JobType.tp_getattr = job_getattr;
    JobType.tp_setattr = job_setattr;
-   
+
    if (PyType_Ready(&JobType) != 0) {
       Jmsg0(NULL, M_ERROR_TERM, 0, "Could not initialize Python Job type.\n");
       PyErr_Print();
@@ -250,8 +244,7 @@ int generate_daemon_event(JCR *jcr, const char *event)
 
    } else if (strcmp(event, "JobEnd") == 0) {
       if (!JobEnd_method || !jcr->Python_job) {
-         Dmsg2(000, "No JobEnd method=%p Job=%p\n", JobEnd_method, jcr->Python_job);
-         stat = 0;
+         stat = 0;                    /* probably already here */
          goto bail_out;
       }
       bstrncpy(jcr->event, event, sizeof(jcr->event));
@@ -262,8 +255,8 @@ int generate_daemon_event(JCR *jcr, const char *event)
          if (PyErr_Occurred()) {
             PyErr_Print();
             Dmsg2(000, "Python JobEnd error. job=%p JobId=%d\n", jcr->Python_job,
-              jcr->JobId);
-           JobEnd_method = NULL;
+               jcr->JobId);
+            JobEnd_method = NULL;
          }
          Jmsg(jcr, M_ERROR, 0, "Python function \"%s\" not found.\n", event);
          goto bail_out;
@@ -284,10 +277,12 @@ int generate_daemon_event(JCR *jcr, const char *event)
    }
 
 bail_out:
-   Py_XDECREF((PyObject *)jcr->Python_job);
-   jcr->Python_job = NULL;
-   Py_XDECREF((PyObject *)jcr->Python_events);
-   jcr->Python_events = NULL;
+   if (jcr) {
+      Py_XDECREF((PyObject *)jcr->Python_job);
+      jcr->Python_job = NULL;
+      Py_XDECREF((PyObject *)jcr->Python_events);
+      jcr->Python_events = NULL;
+   }
    /* Fall through */
 jobstart_ok:
    Py_XDECREF(result);