diff --git a/src/dird/dird_conf.c b/src/dird/dird_conf.c index 53143ce028d..bab494a48f8 100644 --- a/src/dird/dird_conf.c +++ b/src/dird/dird_conf.c @@ -1687,6 +1687,7 @@ void save_resource(int type, RES_ITEM *items, int pass) res->res_job.client = res_all.res_job.client; res->res_job.fileset = res_all.res_job.fileset; res->res_job.storage = res_all.res_job.storage; + res->res_job.catalog = res_all.res_job.catalog; res->res_job.base = res_all.res_job.base; res->res_job.pool = res_all.res_job.pool; res->res_job.full_pool = res_all.res_job.full_pool; diff --git a/src/dird/dird_conf.h b/src/dird/dird_conf.h index de9c890ca42..b7a230b2f44 100644 --- a/src/dird/dird_conf.h +++ b/src/dird/dird_conf.h @@ -434,6 +434,7 @@ class JOBRES { SCHEDRES *schedule; /* When -- Automatic schedule */ CLIENTRES *client; /* Who to backup */ FILESETRES *fileset; /* What to backup -- Fileset */ + CATRES *catalog; /* Which Catalog to use */ alist *storage; /* Where is device -- list of Storage to be used */ POOLRES *pool; /* Where is media -- Media Pool */ POOLRES *full_pool; /* Pool for Full backups */ diff --git a/src/dird/job.c b/src/dird/job.c index 5d82d10e42f..a857e783f29 100644 --- a/src/dird/job.c +++ b/src/dird/job.c @@ -1479,13 +1479,25 @@ void set_jcr_defaults(JCR *jcr, JOBRES *job) jcr->res.full_pool = job->full_pool; jcr->res.inc_pool = job->inc_pool; jcr->res.diff_pool = job->diff_pool; + if (job->pool->catalog) { jcr->res.catalog = job->pool->catalog; pm_strcpy(jcr->res.catalog_source, _("Pool resource")); } else { - jcr->res.catalog = job->client->catalog; - pm_strcpy(jcr->res.catalog_source, _("Client resource")); + if (job->catalog) { + jcr->res.catalog = job->catalog; + pm_strcpy(jcr->res.catalog_source, _("Job resource")); + } else { + if (job->client) { + jcr->res.catalog = job->client->catalog; + pm_strcpy(jcr->res.catalog_source, _("Client resource")); + } else { + jcr->res.catalog = (CATRES *)my_config->GetNextRes(R_CATALOG, NULL); + pm_strcpy(jcr->res.catalog_source, _("Default catalog")); + } + } } + jcr->res.fileset = job->fileset; jcr->accurate = job->accurate; jcr->res.messages = job->messages;