summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-10-09 15:04:59 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-10-09 21:22:23 -0400
commit0f4db364c940d4ad672f9a62d3077aeef89d8629 (patch)
tree750e3e4d27268db454560a845a42ed61c455bc60
parent424e490b94fca44d180122b3f2ded22bfc6d31ea (diff)
resolved: also disable stub listener on EPERM
When running in a user namespace without private networking, resolved would fail to start. There isn't much difference between EADDRINUSE and EPERM, so treat them the same, except for the warning message text.
-rw-r--r--src/resolve/resolved-dns-stub.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/resolve/resolved-dns-stub.c b/src/resolve/resolved-dns-stub.c
index 2430949525..b1c570cee6 100644
--- a/src/resolve/resolved-dns-stub.c
+++ b/src/resolve/resolved-dns-stub.c
@@ -511,9 +511,15 @@ int manager_dns_stub_start(Manager *m) {
r = manager_dns_stub_tcp_fd(m);
}
- if (r == -EADDRINUSE) {
- log_warning("Another process is already listening on %s socket 127.0.0.53:53.\n"
- "Turning off local DNS stub support.", t);
+ if (IN_SET(r, -EADDRINUSE, -EPERM)) {
+ if (r == -EADDRINUSE)
+ log_warning_errno(r,
+ "Another process is already listening on %s socket 127.0.0.53:53.\n"
+ "Turning off local DNS stub support.", t);
+ else
+ log_warning_errno(r,
+ "Failed to listen on %s socket 127.0.0.53:53: %m.\n"
+ "Turning off local DNS stub support.", t);
manager_dns_stub_stop(m);
} else if (r < 0)
return log_error_errno(r, "Failed to listen on %s socket 127.0.0.53:53: %m", t);