]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Improve connection error message with a different code for each target component
authorEric Bollengier <eric@baculasystems.com>
Thu, 15 Dec 2022 09:11:14 +0000 (10:11 +0100)
committerEric Bollengier <eric@baculasystems.com>
Thu, 14 Sep 2023 11:57:00 +0000 (13:57 +0200)
bacula/src/lib/bsockcore.c
bacula/src/lib/message.c
bacula/src/lib/message.h

index 3da2f569abda811d7047c8072633bfed16ce90e1..366cb0c69fe4be00471678f07031c2035c6ca57e 100644 (file)
@@ -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;
       }
    }
index 4b88147e5189b82656899b2635f78a702af9b4f5..408c430cb22999d1f2d88065c7ec7086efcd6fed 100644 (file)
@@ -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
+}
index 2f6be2257843c024e12eaf92b4395fa2da21ed89..31d9018aaaf5208df2c46589c7cee32c79c79c85 100644 (file)
@@ -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);