* system.
*
* Kern Sibbald, January MMI
+ *
+ * Version $Id$
*/
/*
- 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
* -----------------------------------------------------------------------
*/
-int db_create_file_attributes_record(B_DB *mdb, ATTR_DBR *ar)
+int db_create_file_attributes_record(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
{
/* *****FIXME***** implement this */
return 1;
}
-int db_create_file_item(B_DB *mdb, ATTR_DBR *ar)
+int db_create_file_item(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
{
/****FIXME***** not implemented */
return 1;
* Returns: 0 on failure
* 1 on success
*/
-int db_create_job_record(B_DB *mdb, JOB_DBR *jr)
+int db_create_job_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
{
int len;
- P(mdb->mutex);
+ db_lock(mdb);
if (!bdb_open_jobs_file(mdb)) {
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
mdb->control.JobId++;
fseek(mdb->jobfd, 0L, SEEK_END);
if (fwrite(jr, len, 1, mdb->jobfd) != 1) {
Mmsg1(&mdb->errmsg, "Error writing DB Jobs file. ERR=%s\n", strerror(errno));
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
fflush(mdb->jobfd);
- V(mdb->mutex);
+ db_unlock(mdb);
return 1;
}
* Returns: 0 on failure
* record-id on success
*/
-int db_create_jobmedia_record(B_DB *mdb, JOBMEDIA_DBR *jm)
+int db_create_jobmedia_record(JCR *jcr, B_DB *mdb, JOBMEDIA_DBR *jm)
{
int len;
- P(mdb->mutex);
+ db_lock(mdb);
if (!bdb_open_jobmedia_file(mdb)) {
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
mdb->control.JobMediaId++;
fseek(mdb->jobmediafd, 0L, SEEK_END);
if (fwrite(jm, len, 1, mdb->jobmediafd) != 1) {
Mmsg1(&mdb->errmsg, "Error writing DB JobMedia file. ERR=%s\n", strerror(errno));
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
fflush(mdb->jobmediafd);
- V(mdb->mutex);
+ db_unlock(mdb);
return jm->JobMediaId;
}
* Returns: 0 on failure
* 1 on success
*/
-int db_create_pool_record(B_DB *mdb, POOL_DBR *pr)
+int db_create_pool_record(JCR *jcr, B_DB *mdb, POOL_DBR *pr)
{
int len;
POOL_DBR mpr;
memset(&mpr, 0, sizeof(mpr));
strcpy(mpr.Name, pr->Name);
- if (db_get_pool_record(mdb, &mpr)) {
+ if (db_get_pool_record(jcr, mdb, &mpr)) {
Mmsg1(&mdb->errmsg, "Pool record %s already exists\n", mpr.Name);
return 0;
}
- P(mdb->mutex);
+ db_lock(mdb);
if (!bdb_open_pools_file(mdb)) {
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
fseek(mdb->poolfd, 0L, SEEK_END);
if (fwrite(pr, len, 1, mdb->poolfd) != 1) {
Mmsg1(&mdb->errmsg, "Error writing DB Pools file. ERR=%s\n", strerror(errno));
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
fflush(mdb->poolfd);
- V(mdb->mutex);
+ db_unlock(mdb);
return 1;
}
* Returns: 0 on failure
* 1 on success
*/
-int db_create_media_record(B_DB *mdb, MEDIA_DBR *mr)
+int db_create_media_record(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
{
int len;
MEDIA_DBR mmr;
+ db_lock(mdb);
memset(&mmr, 0, sizeof(mmr));
strcpy(mmr.VolumeName, mr->VolumeName);
- if (db_get_media_record(mdb, &mmr)) {
+ if (db_get_media_record(jcr, mdb, &mmr)) {
Mmsg1(&mdb->errmsg, "Media record %s already exists\n", mmr.VolumeName);
+ db_unlock(mdb);
return 0;
}
- P(mdb->mutex);
mdb->control.MediaId++;
mr->MediaId = mdb->control.MediaId;
fseek(mdb->mediafd, 0L, SEEK_END);
if (fwrite(mr, len, 1, mdb->mediafd) != 1) {
Mmsg1(&mdb->errmsg, "Error writing DB Media file. ERR=%s\n", strerror(errno));
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
fflush(mdb->mediafd);
- V(mdb->mutex);
+ db_unlock(mdb);
return 1;
}
* Returns: 0 on failure
* 1 on success
*/
-int db_create_client_record(B_DB *mdb, CLIENT_DBR *cr)
+int db_create_client_record(JCR *jcr, B_DB *mdb, CLIENT_DBR *cr)
{
int len;
CLIENT_DBR lcr;
+ db_lock(mdb);
cr->ClientId = 0;
- if (db_get_client_record(mdb, cr)) {
+ if (db_get_client_record(jcr, mdb, cr)) {
Mmsg1(&mdb->errmsg, "Client record %s already exists\n", cr->Name);
+ db_unlock(mdb);
return 1;
}
- P(mdb->mutex);
if (!bdb_open_client_file(mdb)) {
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
len = sizeof(lcr);
if (fwrite(cr, len, 1, mdb->clientfd) != 1) {
Mmsg1(&mdb->errmsg, "Error writing DB Client file. ERR=%s\n", strerror(errno));
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
fflush(mdb->clientfd);
- V(mdb->mutex);
+ db_unlock(mdb);
return 1;
}
* Returns: 0 on failure
* 1 on success
*/
-int db_create_fileset_record(B_DB *mdb, FILESET_DBR *fsr)
+int db_create_fileset_record(JCR *jcr, B_DB *mdb, FILESET_DBR *fsr)
{
int len;
FILESET_DBR lfsr;
+ db_lock(mdb);
fsr->FileSetId = 0;
- if (db_get_fileset_record(mdb, fsr)) {
+ if (db_get_fileset_record(jcr, mdb, fsr)) {
Mmsg1(&mdb->errmsg, "FileSet record %s already exists\n", fsr->FileSet);
+ db_unlock(mdb);
return 1;
}
- P(mdb->mutex);
if (!bdb_open_fileset_file(mdb)) {
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
len = sizeof(lfsr);
if (fwrite(fsr, len, 1, mdb->filesetfd) != 1) {
Mmsg1(&mdb->errmsg, "Error writing DB FileSet file. ERR=%s\n", strerror(errno));
- V(mdb->mutex);
+ db_unlock(mdb);
return 0;
}
fflush(mdb->filesetfd);
- V(mdb->mutex);
+ db_unlock(mdb);
return 1;
}
+int db_create_counter_record(JCR *jcr, B_DB *mdb, COUNTER_DBR *cr)
+{ return 0; }
+
+
#endif /* HAVE_BACULA_DB */