]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/bdb_update.c
LabelFormat
[bacula/bacula] / bacula / src / cats / bdb_update.c
index 76abba20a739213271c1916b807687cc7dcbc1c8..cfba217730199b8914f48dcb9f50775396112a96 100755 (executable)
@@ -15,7 +15,7 @@
  */
 
 /*
-   Copyright (C) 2001, 2002 Kern Sibbald and John Walker
+   Copyright (C) 2001-2003 Kern Sibbald and John Walker
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
  * most current start fields to the job record.
  * It is assumed that you did a db_create_job_record() already.
  */
-int db_update_job_start_record(B_DB *mdb, JOB_DBR *jr)   
+int 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(mdb, &ojr)) {
+   if (!db_get_job_record(jcr, mdb, &ojr)) {
+      db_unlock(mdb);
       return 0;
    }
 
-   db_lock(mdb);
 
    fseek(mdb->jobfd, ojr.rec_addr, SEEK_SET);
    if (fwrite(jr, len, 1, mdb->jobfd) != 1) {
@@ -91,21 +93,22 @@ int db_update_job_start_record(B_DB *mdb, JOB_DBR *jr)
  * This is called at Job termination time to add all the
  * other fields to the job record.
  */
-int db_update_job_end_record(B_DB *mdb, JOB_DBR *jr)   
+int db_update_job_end_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(mdb, &ojr)) {
+   if (!db_get_job_record(jcr, mdb, &ojr)) {
+      db_unlock(mdb);
       return 0;
    }
 
-   db_lock(mdb);
-
    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));
@@ -118,22 +121,23 @@ int db_update_job_end_record(B_DB *mdb, JOB_DBR *jr)
 }
 
 
-int db_update_media_record(B_DB *mdb, MEDIA_DBR *mr) 
+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(mdb, &omr)) {
+   if (!db_get_media_record(jcr, mdb, &omr)) {
+      db_unlock(mdb);
       return 0;
    }
 
-   db_lock(mdb);
 
    /* Don't allow some fields to change by copying from master record */
    strcpy(mr->VolumeName, omr.VolumeName);
@@ -155,21 +159,22 @@ int db_update_media_record(B_DB *mdb, MEDIA_DBR *mr)
    return stat;
 }
 
-int db_update_pool_record(B_DB *mdb, POOL_DBR *pr) 
+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(mdb, &opr)) {
+   if (!db_get_pool_record(jcr, mdb, &opr)) {
+      db_unlock(mdb);
       return 0;
    }
 
-   db_lock(mdb);
 
    /* Update specific fields */
    opr.NumVols = pr->NumVols;
@@ -192,15 +197,25 @@ int db_update_pool_record(B_DB *mdb, POOL_DBR *pr)
    return stat;
 }
 
-int db_add_MD5_to_file_record(B_DB *mdb, FileId_t FileId, char *MD5)   
+int db_add_SIG_to_file_record(JCR *jcr, B_DB *mdb, FileId_t FileId, char *SIG, int type)
 {
    return 1;
 }
 
-int db_mark_file_record(B_DB *mdb, FileId_t FileId, JobId_t JobId)
+int db_mark_file_record(JCR *jcr, B_DB *mdb, FileId_t FileId, JobId_t JobId)
 { 
    return 1;
 }
 
+int db_update_client_record(JCR *jcr, B_DB *mdb, CLIENT_DBR *cr)
+{
+   return 1;
+}
+
+int db_update_counter_record(JCR *jcr, B_DB *mdb, COUNTER_DBR *cr)
+{
+   return 0;
+}
+
 
 #endif /* HAVE_BACULA_DB */