aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2024-06-19 21:25:30 +0200
committerStefano Brivio <sbrivio@redhat.com>2024-06-21 15:32:46 +0200
commite7323e515ad33191f779197e8b14d8d1c2ad531d (patch)
tree08541df76df8fbbd418291a7587677e1e8e40d20
parentdba7f0f5cee06dcfc205b0284ba19c2651f594c4 (diff)
downloadpasst-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.c9
-rw-r--r--passt.c4
2 files changed, 5 insertions, 8 deletions
diff --git a/conf.c b/conf.c
index 3db8d4d..e1f5422 100644
--- a/conf.c
+++ b/conf.c
@@ -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));
diff --git a/passt.c b/passt.c
index 13f3eb6..e4d45da 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);