summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-08-27 19:28:19 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-08-27 19:49:09 +0200
commitfd73184f25d85506aa7ad51993921a39e6cbba74 (patch)
tree8342fbfba253b14e3df9d65ee1c3b45cd43d4a78
parent52aaef0f5dc81b9a08d720f551eac53ac88aa596 (diff)
downloadsystemd-fd73184f25d85506aa7ad51993921a39e6cbba74.tar.gz
resolved: query polkit only after parsing the data
That's what we do everywhere else because it leads to nicer user experience.
-rw-r--r--src/resolve/resolved-bus.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c
index 924242fe6c..db0f8381ef 100644
--- a/src/resolve/resolved-bus.c
+++ b/src/resolve/resolved-bus.c
@@ -1638,15 +1638,6 @@ static int bus_method_register_service(sd_bus_message *message, void *userdata,
if (m->mdns_support != RESOLVE_SUPPORT_YES)
return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, "Support for MulticastDNS is disabled");
- r = bus_verify_polkit_async(message, CAP_SYS_ADMIN,
- "org.freedesktop.resolve1.register-service",
- NULL, false, UID_INVALID,
- &m->polkit_registry, error);
- if (r < 0)
- return r;
- if (r == 0)
- return 1; /* Polkit will call us back */
-
service = new0(DnssdService, 1);
if (!service)
return log_oom();
@@ -1771,6 +1762,15 @@ static int bus_method_register_service(sd_bus_message *message, void *userdata,
if (r < 0)
return r;
+ r = bus_verify_polkit_async(message, CAP_SYS_ADMIN,
+ "org.freedesktop.resolve1.register-service",
+ NULL, false, UID_INVALID,
+ &m->polkit_registry, error);
+ if (r < 0)
+ return r;
+ if (r == 0)
+ return 1; /* Polkit will call us back */
+
r = hashmap_ensure_allocated(&m->dnssd_services, &string_hash_ops);
if (r < 0)
return r;