--quiet is supposed to silence the "No routable interface" message but it does not work because the log level was set long after conf_ip4/6() was called which means it uses the default level which logs everything. To address this move the log level logic directly after the option parsing in conf(). Signed-off-by: Paul Holzinger <pholzing(a)redhat.com> --- conf.c | 10 ++++++++++ passt.c | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/conf.c b/conf.c index 9c99531..17cf279 100644 --- a/conf.c +++ b/conf.c @@ -1646,6 +1646,16 @@ void conf(struct ctx *c, int argc, char **argv) logfile, logsize); } + /* Once the log mask is not LOG_EARLY, we will no longer log to stderr + * if there was a log file specified. + */ + if (c->debug) + __setlogmask(LOG_UPTO(LOG_DEBUG)); + else if (c->quiet) + __setlogmask(LOG_UPTO(LOG_WARNING)); + else + __setlogmask(LOG_UPTO(LOG_INFO)); + nl_sock_init(c, false); if (!v6_only) c->ifi4 = conf_ip4(ifi4, &c->ip4, c->mac); diff --git a/passt.c b/passt.c index 5d7e7c4..a061f2b 100644 --- a/passt.c +++ b/passt.c @@ -320,16 +320,6 @@ int main(int argc, char **argv) if (isolate_prefork(&c)) die("Failed to sandbox process, exiting"); - /* Once the log mask is not LOG_EARLY, we will no longer log to stderr - * if there was a log file specified. - */ - if (c.debug) - __setlogmask(LOG_UPTO(LOG_DEBUG)); - else if (c.quiet) - __setlogmask(LOG_UPTO(LOG_WARNING)); - else - __setlogmask(LOG_UPTO(LOG_INFO)); - if (!c.foreground) __daemon(pidfile_fd, devnull_fd); else -- 2.43.2