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;
}
}
}
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
+}
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);