mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 06:52:22 +03:00
bus: various improvements for test-bus-chat
This commit is contained in:
parent
d4100e2444
commit
b7f247e0be
@ -1314,7 +1314,12 @@ int sd_bus_send_with_reply_and_block(
|
||||
/* Found a match! */
|
||||
|
||||
if (incoming->header->type == SD_BUS_MESSAGE_TYPE_METHOD_RETURN) {
|
||||
*reply = incoming;
|
||||
|
||||
if (reply)
|
||||
*reply = incoming;
|
||||
else
|
||||
sd_bus_message_unref(incoming);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -206,14 +206,14 @@ static int server(sd_bus *bus) {
|
||||
client2_gone = true;
|
||||
} else if (sd_bus_message_is_method_call(m, "org.freedesktop.systemd.test", "Slow")) {
|
||||
|
||||
sleep(1);
|
||||
|
||||
r = sd_bus_reply_method_return(bus, m, NULL);
|
||||
if (r < 0) {
|
||||
log_error("Failed to send reply: %s", strerror(-r));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
sleep(1);
|
||||
|
||||
} else if (sd_bus_message_is_method_call(m, "org.freedesktop.systemd.test", "FileDescriptor")) {
|
||||
int fd;
|
||||
static const char x = 'X';
|
||||
@ -305,31 +305,18 @@ static void* client1(void*p) {
|
||||
goto finish;
|
||||
}
|
||||
|
||||
sd_bus_message_unref(m);
|
||||
m = NULL;
|
||||
r = sd_bus_message_new_method_call(
|
||||
r = sd_bus_call_method(
|
||||
bus,
|
||||
"org.freedesktop.systemd.test",
|
||||
"/",
|
||||
"org.freedesktop.systemd.test",
|
||||
"FileDescriptor",
|
||||
&m);
|
||||
&error,
|
||||
NULL,
|
||||
"h",
|
||||
pp[1]);
|
||||
if (r < 0) {
|
||||
log_error("Failed to allocate method call: %s", strerror(-r));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
r = sd_bus_message_append(m, "h", pp[1]);
|
||||
if (r < 0) {
|
||||
log_error("Failed to append string: %s", strerror(-r));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
sd_bus_message_unref(reply);
|
||||
reply = NULL;
|
||||
r = sd_bus_send_with_reply_and_block(bus, m, 0, &error, &reply);
|
||||
if (r < 0) {
|
||||
log_error("Failed to issue method call: %s", bus_error_message(&error, -r));
|
||||
log_error("Failed to issue method call: %s", strerror(-r));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
@ -352,12 +339,11 @@ finish:
|
||||
"org.freedesktop.systemd.test",
|
||||
"ExitClient1",
|
||||
&q);
|
||||
if (r < 0) {
|
||||
if (r < 0)
|
||||
log_error("Failed to allocate method call: %s", strerror(-r));
|
||||
goto finish;
|
||||
}
|
||||
else
|
||||
sd_bus_send(bus, q, NULL);
|
||||
|
||||
sd_bus_send(bus, q, NULL);
|
||||
sd_bus_flush(bus);
|
||||
sd_bus_unref(bus);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user