From: Eric Bollengier Date: Wed, 30 Oct 2019 10:11:02 +0000 (+0100) Subject: Fix #5546 about incorrect level for job resumed X-Git-Tag: Release-9.6.0~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d711fb95e6df26aeddad07a0baf1458e80f4a040;p=thirdparty%2Fbacula.git Fix #5546 about incorrect level for job resumed --- diff --git a/bacula/src/dird/dird_conf.c b/bacula/src/dird/dird_conf.c index 60c62c0af..3baeb0bb1 100644 --- a/bacula/src/dird/dird_conf.c +++ b/bacula/src/dird/dird_conf.c @@ -811,6 +811,17 @@ char *CAT::display(POOLMEM *dst) { return dst; } +const char *level_to_static_str(int level) +{ + char *ret = NULL; /* If not found... */ + for (int i=0; joblevels[i].level_name; i++) { + if (level == (int)joblevels[i].level) { + return joblevels[i].level_name; + } + } + return ret; +} + char *level_to_str(char *buf, int len, int level) { int i; diff --git a/bacula/src/dird/protos.h b/bacula/src/dird/protos.h index d792a500f..2e0cae9c3 100644 --- a/bacula/src/dird/protos.h +++ b/bacula/src/dird/protos.h @@ -84,6 +84,7 @@ extern bool despool_attributes_from_file(JCR *jcr, const char *file); extern void remove_dummy_jobmedia_records(JCR *jcr); /* dird_conf.c */ +extern const char *level_to_static_str(int level); extern char *level_to_str(char *buf, int len, int level); extern "C" char *job_code_callback_director(JCR *jcr, const char*, char *, int); diff --git a/bacula/src/dird/ua_run.c b/bacula/src/dird/ua_run.c index 5e7954b9d..1cc48c271 100644 --- a/bacula/src/dird/ua_run.c +++ b/bacula/src/dird/ua_run.c @@ -29,7 +29,8 @@ const char *get_command(int index); class run_ctx { public: - char *job_name, *level_name, *jid, *store_name, *pool_name; + const char *level_name; + char *job_name, *jid, *store_name, *pool_name; char *where, *fileset_name, *client_name, *bootstrap, *regexwhere; char *restore_client_name, *comment, *media_type, *next_pool_name; const char *replace; @@ -595,6 +596,8 @@ static bool get_jobid_from_list(UAContext *ua, sellist &sl, run_ctx &rc) } Dmsg3(100, "Job=%s JobId=%d JobStatus=%c\n", rc.jr.Name, rc.jr.JobId, rc.jr.JobStatus); + + rc.level_name = level_to_static_str(rc.jr.JobLevel); rc.job_name = rc.jr.Name; if (!get_job(ua, rc)) {