diff options
author | David Herrmann <dh.herrmann@googlemail.com> | 2015-10-18 12:15:10 +0200 |
---|---|---|
committer | David Herrmann <dh.herrmann@googlemail.com> | 2015-10-18 12:15:10 +0200 |
commit | 606601ddcac15f5ade4f6840fd04d6f26acce2f4 (patch) | |
tree | da1d097a72e2479070d86fa652c03c3d36ff5ff7 /src/core/unit.c | |
parent | eacb22c21b31bba5d0387982c6b0b4faa452cb5e (diff) | |
parent | 9806e87da22d0025d7c427907202e5751a6b5989 (diff) |
Merge pull request #1595 from poettering/proxy-fixes
bus proxy fixes, and more
Diffstat (limited to 'src/core/unit.c')
-rw-r--r-- | src/core/unit.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/core/unit.c b/src/core/unit.c index 39cd89f1e3..d8f0eb8111 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2508,26 +2508,23 @@ static int signal_name_owner_changed(sd_bus_message *message, void *userdata, sd return 0; } -int unit_install_bus_match(sd_bus *bus, Unit *u, const char *name) { - _cleanup_free_ char *match = NULL; - Manager *m = u->manager; +int unit_install_bus_match(Unit *u, sd_bus *bus, const char *name) { + const char *match; - assert(m); + assert(u); + assert(bus); + assert(name); if (u->match_bus_slot) return -EBUSY; - match = strjoin("type='signal'," + match = strjoina("type='signal'," "sender='org.freedesktop.DBus'," "path='/org/freedesktop/DBus'," "interface='org.freedesktop.DBus'," "member='NameOwnerChanged'," - "arg0='", - name, - "'", + "arg0='", name, "'", NULL); - if (!match) - return -ENOMEM; return sd_bus_add_match(bus, &u->match_bus_slot, match, signal_name_owner_changed, u); } @@ -2544,7 +2541,7 @@ int unit_watch_bus_name(Unit *u, const char *name) { if (u->manager->api_bus) { /* If the bus is already available, install the match directly. * Otherwise, just put the name in the list. bus_setup_api() will take care later. */ - r = unit_install_bus_match(u->manager->api_bus, u, name); + r = unit_install_bus_match(u, u->manager->api_bus, name); if (r < 0) return log_warning_errno(r, "Failed to subscribe to NameOwnerChanged signal: %m"); } |