]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/bdb_update.c
Tweak mutex order for SD
[bacula/bacula] / bacula / src / cats / bdb_update.c
old mode 100755 (executable)
new mode 100644 (file)
index 35fa610..e6d976f
  *
  *    Version $Id$
  */
-
 /*
-   Copyright (C) 2001-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) 2001-2008 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 and included
+   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 Kern Sibbald.
+   The licensor of Bacula is the Free Software Foundation Europe
+   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+   Switzerland, email:ftf@fsfeurope.org.
+*/
 
 
 /* The following is necessary so that we do not include
@@ -41,8 +53,6 @@
 
 #ifdef HAVE_BACULA_DB
 
-/* Forward referenced functions */
-
 /* -----------------------------------------------------------------------
  *
  *   Bacula specific defines and subroutines
  */
 bool db_update_job_start_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
 {
-   int len, stat = 1;
-   JOB_DBR ojr;
-
-   db_lock(mdb);
-
-   Dmsg0(200, "In db_update_job_start_record\n");
-   len = sizeof(ojr);
-   memcpy(&ojr, jr, len);
-
-   if (!db_get_job_record(jcr, mdb, &ojr)) {
-      db_unlock(mdb);
-      return 0;
-   }
-
-
-   fseek(mdb->jobfd, ojr.rec_addr, SEEK_SET);
-   if (fwrite(jr, len, 1, mdb->jobfd) != 1) {
-      Mmsg1(mdb->errmsg, _("Error updating DB Job file. ERR=%s\n"), strerror(errno));
-      stat = 0;
-   }
-   fflush(mdb->jobfd);
-
-   db_unlock(mdb);
-   return stat;
+   return false;
 }
 
 /*
  * This is called at Job termination time to add all the
  * other fields to the job record.
  */
-int db_update_job_end_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
+int db_update_job_end_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr, bool stats_enabled)
 {
-   int len, stat = 1;
-   JOB_DBR ojr;
-
-   db_lock(mdb);
-
-   Dmsg0(200, "In db_update_job_start_record\n");
-   len = sizeof(ojr);
-   memcpy(&ojr, jr, len);
-
-   if (!db_get_job_record(jcr, mdb, &ojr)) {
-      db_unlock(mdb);
-      return 0;
-   }
-
-   fseek(mdb->jobfd, ojr.rec_addr, SEEK_SET);
-   if (fwrite(jr, len, 1, mdb->jobfd) != 1) {
-      Mmsg1(&mdb->errmsg, _("Error updating DB Job file. ERR=%s\n"), strerror(errno));
-      stat = 0;
-   }
-   fflush(mdb->jobfd);
-
-   db_unlock(mdb);
-   return stat;
+   return 0;
 }
 
 
 int db_update_media_record(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
 {
-   int stat = 1;
-   MEDIA_DBR omr;
-   int len;
-
-   db_lock(mdb);
-   Dmsg0(200, "In db_update_media_record\n");
-   mr->MediaId = 0;
-   len = sizeof(omr);
-   memcpy(&omr, mr, len);
-
-   if (!db_get_media_record(jcr, mdb, &omr)) {
-      db_unlock(mdb);
-      return 0;
-   }
-
-
-   /* Don't allow some fields to change by copying from master record */
-   strcpy(mr->VolumeName, omr.VolumeName);
-   strcpy(mr->MediaType, omr.MediaType);
-   mr->MediaId = omr.MediaId;
-   mr->PoolId = omr.PoolId;
-   mr->MaxVolBytes = omr.MaxVolBytes;
-   mr->VolCapacityBytes = omr.VolCapacityBytes;
-   mr->Recycle = omr.Recycle;
-
-   fseek(mdb->mediafd, omr.rec_addr, SEEK_SET);
-   if (fwrite(mr, len, 1, mdb->mediafd) != 1) {
-      Mmsg1(mdb->errmsg, _("Error updating DB Media file. ERR=%s\n"), strerror(errno));
-      stat = 0;
-   }
-   fflush(mdb->mediafd);
-
-   db_unlock(mdb);
-   return stat;
+   return 0;
 }
 
 int db_update_pool_record(JCR *jcr, B_DB *mdb, POOL_DBR *pr)
 {
-   int stat = 1;
-   POOL_DBR opr;
-   int len;
-
-   db_lock(mdb);
-   Dmsg0(200, "In db_update_pool_record\n");
-   len = sizeof(opr);
-   memcpy(&opr, pr, len);
-
-   if (!db_get_pool_record(jcr, mdb, &opr)) {
-      db_unlock(mdb);
-      return 0;
-   }
-
-
-   /* Update specific fields */
-   opr.NumVols = pr->NumVols;
-   opr.MaxVols = pr->MaxVols;
-   opr.UseOnce = pr->UseOnce;
-   opr.UseCatalog = pr->UseCatalog;
-   opr.AcceptAnyVolume = pr->AcceptAnyVolume;
-   strcpy(opr.LabelFormat, pr->LabelFormat);
-
-   fseek(mdb->poolfd, opr.rec_addr, SEEK_SET);
-   if (fwrite(&opr, len, 1, mdb->poolfd) != 1) {
-      Mmsg1(mdb->errmsg, _("Error updating DB Media file. ERR=%s\n"), strerror(errno));
-      stat = 0;
-   } else {
-      memcpy(pr, &opr, len);          /* return record written */
-   }
-   fflush(mdb->poolfd);
-
-   db_unlock(mdb);
-   return stat;
+   return 0;
 }
 
 int db_add_digest_to_file_record(JCR *jcr, B_DB *mdb, FileId_t FileId, char *digest, int type)
@@ -217,5 +116,9 @@ int db_update_media_defaults(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
    return 1;
 }
 
+void db_make_inchanger_unique(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
+{
+  return;
+}
 
 #endif /* HAVE_BACULA_DB */