mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-28 20:25:25 +03:00
bus-proxy: fix NameAcquired and NameLost to be directed
The NameAcquired and NameLost signals are _directed_ signals. Make sure we properly set the destination correctly, and verify it in our proxy-test.
This commit is contained in:
parent
6189e043d4
commit
e3c57a86f6
@ -644,6 +644,10 @@ static int process_hello(Proxy *p, sd_bus_message *m) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to append sender to NameAcquired message: %m");
|
||||
|
||||
r = sd_bus_message_set_destination(n, p->destination_bus->unique_name);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to set destination for NameAcquired message: %m");
|
||||
|
||||
r = bus_seal_synthetic_message(p->local_bus, n);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to seal NameAcquired message: %m");
|
||||
|
@ -214,6 +214,10 @@ int synthesize_name_acquired(Proxy *p, sd_bus *a, sd_bus *b, sd_bus_message *m)
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_bus_message_set_destination(n, a->unique_name);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = bus_seal_synthetic_message(b, n);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
@ -53,7 +53,9 @@ static int test_proxy_acquired(sd_bus_message *m, void *userdata, sd_bus_error *
|
||||
|
||||
static void test_proxy_matched(void) {
|
||||
_cleanup_bus_flush_close_unref_ sd_bus *a = NULL;
|
||||
_cleanup_free_ char *matchstr = NULL;
|
||||
TestProxyMatch match = {};
|
||||
const char *me;
|
||||
int r;
|
||||
|
||||
/* open bus 'a' */
|
||||
@ -70,10 +72,17 @@ static void test_proxy_matched(void) {
|
||||
r = sd_bus_start(a);
|
||||
assert_se(r >= 0);
|
||||
|
||||
r = sd_bus_add_match(a, NULL,
|
||||
"type='signal',"
|
||||
"member='NameAcquired'",
|
||||
test_proxy_acquired, &match);
|
||||
r = sd_bus_get_unique_name(a, &me);
|
||||
assert_se(r >= 0);
|
||||
|
||||
matchstr = strjoin("type='signal',"
|
||||
"member='NameAcquired',"
|
||||
"destination='",
|
||||
me,
|
||||
"'",
|
||||
NULL);
|
||||
assert_se(matchstr);
|
||||
r = sd_bus_add_match(a, NULL, matchstr, test_proxy_acquired, &match);
|
||||
assert_se(r >= 0);
|
||||
|
||||
r = sd_bus_get_unique_name(a, &match.sender);
|
||||
|
Loading…
Reference in New Issue
Block a user