From e70207b2818763fdd19368e27e11939055af561f Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Mon, 26 Aug 2024 17:54:59 +0200 Subject: [PATCH] Displaced bird_name to log.c where it rightfully belongs --- lib/birdlib.h | 3 +++ sysdep/unix/log.c | 25 +++++++++++++++++++++++++ sysdep/unix/main.c | 18 ++---------------- sysdep/unix/unix.h | 2 +- test/birdtest.c | 3 ++- 5 files changed, 33 insertions(+), 18 deletions(-) diff --git a/lib/birdlib.h b/lib/birdlib.h index a53204d5..ec4e0dcb 100644 --- a/lib/birdlib.h +++ b/lib/birdlib.h @@ -201,6 +201,9 @@ void log_rl(struct tbf *rl, const char *msg, ...); void die(const char *msg, ...) NORET; void bug(const char *msg, ...) NORET; +void set_daemon_name(char *path, char *def); + + #define L_DEBUG "\001" /* Debugging messages */ #define L_TRACE "\002" /* Protocol tracing */ #define L_INFO "\003" /* Informational messages */ diff --git a/sysdep/unix/log.c b/sysdep/unix/log.c index 98642e9c..beed8364 100644 --- a/sysdep/unix/log.c +++ b/sysdep/unix/log.c @@ -36,6 +36,7 @@ static pool *log_pool; static struct rfile *dbg_rf; static char *current_syslog_name = NULL; /* NULL -> syslog closed */ +const char *bird_name = NULL; _Atomic uint max_thread_id = 1; _Thread_local uint this_thread_id; @@ -826,6 +827,7 @@ resolve_fail: void log_init_debug(char *f) { + ASSERT_DIE(bird_name); clock_gettime(CLOCK_MONOTONIC, &dbg_time_start); if (dbg_rf && dbg_rf != &rf_stderr) @@ -842,3 +844,26 @@ log_init_debug(char *f) exit(1); } } + +/* + * Setting BIRD name + */ + +static inline char * +get_bird_name(char *s, char *def) +{ + char *t; + if (!s) + return def; + t = strrchr(s, '/'); + if (!t) + return s; + if (!t[1]) + return def; + return t+1; +} + +void set_daemon_name(char *path, char *def) +{ + bird_name = get_bird_name(path, def); +} diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index 254690b1..0f97f422 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -709,7 +709,6 @@ signal_init(void) static char *opt_list = "bc:dD:ps:P:u:g:flRh"; int parse_and_exit; -char *bird_name; static char *use_user; static char *use_group; static int run_in_foreground = 0; @@ -754,20 +753,6 @@ display_version(void) exit(0); } -static inline char * -get_bird_name(char *s, char *def) -{ - char *t; - if (!s) - return def; - t = strrchr(s, '/'); - if (!t) - return s; - if (!t[1]) - return def; - return t+1; -} - static inline uid_t get_uid(const char *s) { @@ -821,7 +806,8 @@ parse_args(int argc, char **argv) int socket_changed = 0; int c; - bird_name = get_bird_name(argv[0], "bird"); + set_daemon_name(argv[0], "bird"); + if (argc == 2) { if (!strcmp(argv[1], "--version")) diff --git a/sysdep/unix/unix.h b/sysdep/unix/unix.h index 5e2144e4..7832caaa 100644 --- a/sysdep/unix/unix.h +++ b/sysdep/unix/unix.h @@ -24,7 +24,7 @@ struct config; /* main.c */ -extern char *bird_name; +extern const char *bird_name; extern int parse_and_exit; void async_config(void); void async_dump(void); diff --git a/test/birdtest.c b/test/birdtest.c index 76bae76d..a8b87fc2 100644 --- a/test/birdtest.c +++ b/test/birdtest.c @@ -76,6 +76,8 @@ bt_init(int argc, char *argv[]) bt_test_id = NULL; is_terminal = isatty(fileno(stdout)); + set_daemon_name(argv[0], "birdtest"); + while ((c = getopt(argc, argv, "lcdftv")) >= 0) switch (c) { @@ -539,7 +541,6 @@ bt_is_char(byte c) */ int parse_and_exit; -char *bird_name; void async_config(void) {} void async_dump(void) {} void async_shutdown(void) {}