From: Eric Bollengier Date: Thu, 15 Dec 2022 09:11:14 +0000 (+0100) Subject: Improve connection error message with a different code for each target component X-Git-Tag: Beta-15.0.0~316 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ce70ada5753d40e052e771a6cde45b7dfa840fd;p=thirdparty%2Fbacula.git Improve connection error message with a different code for each target component --- diff --git a/bacula/src/lib/bsockcore.c b/bacula/src/lib/bsockcore.c index 3da2f569a..366cb0c69 100644 --- a/bacula/src/lib/bsockcore.c +++ b/bacula/src/lib/bsockcore.c @@ -263,8 +263,9 @@ bool BSOCKCORE::connect(JCR * jcr, int retry_interval, utime_t max_retry_time, bmicrosleep(retry_interval, 0); now = time(NULL); if (begin_time + max_retry_time <= now) { - Mmsg(errmsg, _("[%cE0029] Unable to connect to %s on %s:%d. ERR=%s\n"), - component_code, name, host, port, be.bstrerror()); + int code = get_component_statuscode(name); + Mmsg(errmsg, _("[%cE00%d9] Unable to connect to %s on %s:%d. ERR=%s\n"), + component_code, code, name, host, port, be.bstrerror()); goto bail_out; } } diff --git a/bacula/src/lib/message.c b/bacula/src/lib/message.c index 4b88147e5..408c430cb 100644 --- a/bacula/src/lib/message.c +++ b/bacula/src/lib/message.c @@ -2152,3 +2152,29 @@ char *build_connecting_info_log(const char *daemon, const char *name, const char } return buf; } + +/**************************************************************** + * Used to build generic error message + ****************************************************************/ +struct comp { + const char *name; + int code; +}; + +struct comp comp_codes[] = { + {"Director", 1}, + {"FileDaemon", 2}, + {"Client", 2}, + {"Storage", 3}, + {NULL, 0} +}; + +int get_component_statuscode(const char *component) +{ + for (int i=0; comp_codes[i].name ; i++) { + if (strcasecmp(comp_codes[i].name, component) == 0) { + return comp_codes[i].code; + } + } + return 4; // unknown component +} diff --git a/bacula/src/lib/message.h b/bacula/src/lib/message.h index 2f6be2257..31d9018aa 100644 --- a/bacula/src/lib/message.h +++ b/bacula/src/lib/message.h @@ -200,6 +200,7 @@ bool is_message_type_set(JCR *jcr, int type); void set_trace_for_tools(int new_trace_fd); // called by Bacula's tools only void update_trace_file_location(bool safe); char *build_connecting_info_log(const char *daemon, const char *name, const char *addr, int port, bool tls, POOLMEM *&buf); +int get_component_statuscode(const char *component); class BDB; /* define forward reference */ typedef bool (*sql_insert_log)(JCR *jcr, JobId_t jobid, utime_t mtime, char *msg);