X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=bacula%2Fsrc%2Fcats%2Fbdb_update.c;h=cfba217730199b8914f48dcb9f50775396112a96;hb=9d8607727598a4ece6597153c42c11d9e4483033;hp=0a82099b49165af1909c7b3fe5e6087706c7d1e5;hpb=f708e46ebcf8c1bf319bc51857013d580d50ca33;p=bacula%2Fbacula diff --git a/bacula/src/cats/bdb_update.c b/bacula/src/cats/bdb_update.c index 0a82099b49..cfba217730 100755 --- a/bacula/src/cats/bdb_update.c +++ b/bacula/src/cats/bdb_update.c @@ -61,20 +61,22 @@ * 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(void *jcr, 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(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(void *jcr, 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(void *jcr, 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(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(void *jcr, B_DB *mdb, JOB_DBR *jr) } -int db_update_media_record(void *jcr, 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(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(void *jcr, B_DB *mdb, MEDIA_DBR *mr) return stat; } -int db_update_pool_record(void *jcr, 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(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(void *jcr, B_DB *mdb, POOL_DBR *pr) return stat; } -int db_add_MD5_to_file_record(void *jcr, 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(void *jcr, 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 */