On Wed, Jun 19, 2024 at 09:40:28PM +0200, Stefano Brivio wrote: > 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 > Signed-off-by: Stefano Brivio Reviewed-by: David Gibson > --- > conf.c | 9 +++++---- > passt.c | 4 ---- > 2 files changed, 5 insertions(+), 8 deletions(-) > > diff --git a/conf.c b/conf.c > index 09bf6dd..5a4f559 100644 > --- a/conf.c > +++ b/conf.c > @@ -1220,6 +1220,7 @@ void conf(struct ctx *c, int argc, char **argv) > {"no-copy-addrs", no_argument, NULL, 19 }, > { 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; > @@ -1680,10 +1681,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)); > diff --git a/passt.c b/passt.c > index 0ba208d..72c83ad 100644 > --- a/passt.c > +++ b/passt.c > @@ -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); -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson