diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2024-06-19 21:25:30 +0200 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-06-21 15:32:46 +0200 |
commit | e7323e515ad33191f779197e8b14d8d1c2ad531d (patch) | |
tree | 08541df76df8fbbd418291a7587677e1e8e40d20 | |
parent | dba7f0f5cee06dcfc205b0284ba19c2651f594c4 (diff) | |
download | passt-e7323e515ad33191f779197e8b14d8d1c2ad531d.tar passt-e7323e515ad33191f779197e8b14d8d1c2ad531d.tar.gz passt-e7323e515ad33191f779197e8b14d8d1c2ad531d.tar.bz2 passt-e7323e515ad33191f779197e8b14d8d1c2ad531d.tar.lz passt-e7323e515ad33191f779197e8b14d8d1c2ad531d.tar.xz passt-e7323e515ad33191f779197e8b14d8d1c2ad531d.tar.zst passt-e7323e515ad33191f779197e8b14d8d1c2ad531d.zip |
conf, passt: Don't call __openlog() if a log file is used
If a log file is configured, we would otherwise open a connection to
the system logger (if any), print any message that we might have
before we initialise the log file, and then keep that connection
around for no particular reason.
Call __openlog() as an alternative to the log file setup, instead.
This way, we might skip printing some messages during the
initialisation phase, but they're probably not really valuable to
have in a system log, and we're going to print them to standard
error anyway.
Suggested-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | conf.c | 9 | ||||
-rw-r--r-- | passt.c | 4 |
2 files changed, 5 insertions, 8 deletions
@@ -1217,6 +1217,7 @@ void conf(struct ctx *c, int argc, char **argv) {"netns-only", no_argument, NULL, 20 }, { 0 }, }; + const char *logname = (c->mode == MODE_PASTA) ? "pasta" : "passt"; char userns[PATH_MAX] = { 0 }, netns[PATH_MAX] = { 0 }; bool copy_addrs_opt = false, copy_routes_opt = false; struct in6_addr *dns6 = c->ip6.dns, dns6_tmp; @@ -1619,10 +1620,10 @@ void conf(struct ctx *c, int argc, char **argv) conf_ugid(runas, &uid, &gid); - if (logfile) { - logfile_init(c->mode == MODE_PASTA ? "pasta" : "passt", - logfile, logsize); - } + if (logfile) + logfile_init(logname, logfile, logsize); + else + __openlog(logname, 0, LOG_DAEMON); if (c->debug) __setlogmask(LOG_UPTO(LOG_DEBUG)); @@ -224,8 +224,6 @@ int main(int argc, char **argv) strncpy(argv0, argv[0], PATH_MAX - 1); name = basename(argv0); if (strstr(name, "pasta")) { - __openlog("pasta", 0, LOG_DAEMON); - sa.sa_handler = pasta_child_handler; if (sigaction(SIGCHLD, &sa, NULL)) die_perror("Couldn't install signal handlers"); @@ -235,8 +233,6 @@ int main(int argc, char **argv) c.mode = MODE_PASTA; } else if (strstr(name, "passt")) { - __openlog("passt", 0, LOG_DAEMON); - c.mode = MODE_PASST; } else { exit(EXIT_FAILURE); |