]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-bus: allow passing NULL as bus parameter to sd_bus_send()
authorLennart Poettering <lennart@poettering.net>
Wed, 29 Apr 2015 16:58:30 +0000 (18:58 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 29 Apr 2015 16:58:30 +0000 (18:58 +0200)
If NULL is specified for the bus it is now automatically derived from
the passed in message.

This commit also changes a number of invocations of sd_bus_send() to
make use of this.

src/core/dbus-manager.c
src/import/importd.c
src/libsystemd/sd-bus/sd-bus.c
src/login/logind-dbus.c
src/machine/machine-dbus.c
src/machine/machined-dbus.c

index 5fb0da2cb2d4e48180f11767f42d358f259f3832..632529fcbc046ed71f9bd897151a436fbd55721f 100644 (file)
@@ -916,7 +916,7 @@ static int list_units_filtered(sd_bus_message *message, void *userdata, sd_bus_e
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_list_units(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -985,7 +985,7 @@ static int method_list_jobs(sd_bus_message *message, void *userdata, sd_bus_erro
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_subscribe(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -1502,7 +1502,7 @@ static int method_list_unit_files(sd_bus_message *message, void *userdata, sd_bu
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 
 fail:
         unit_file_list_free(h);
@@ -1620,7 +1620,7 @@ static int reply_unit_file_changes_and_free(
         if (r < 0)
                 goto fail;
 
-        return sd_bus_send(sd_bus_message_get_bus(message), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 
 fail:
         unit_file_changes_free(changes, n_changes);
index 4f3701f5c5ca9cd0179e7562b15358f3cb10d691..45d1d9334362c0c71f568c14a71f9fd14013a1d5 100644 (file)
@@ -1064,7 +1064,7 @@ static int method_list_transfers(sd_bus_message *msg, void *userdata, sd_bus_err
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(msg), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_cancel(sd_bus_message *msg, void *userdata, sd_bus_error *error) {
index 41fbe7d4af200357335aaf9bdadcc374200a3691..214b3d04dfbd2e5c238e953b4379cb9dee7788aa 100644 (file)
@@ -1695,8 +1695,11 @@ static int bus_send_internal(sd_bus *bus, sd_bus_message *_m, uint64_t *cookie,
         _cleanup_bus_message_unref_ sd_bus_message *m = sd_bus_message_ref(_m);
         int r;
 
-        assert_return(bus, -EINVAL);
         assert_return(m, -EINVAL);
+
+        if (!bus)
+                bus = m->bus;
+
         assert_return(!bus_pid_changed(bus), -ECHILD);
         assert_return(!bus->is_kernel || !(bus->hello_flags & KDBUS_HELLO_MONITOR), -EROFS);
 
@@ -1781,8 +1784,11 @@ _public_ int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *cookie) {
 _public_ int sd_bus_send_to(sd_bus *bus, sd_bus_message *m, const char *destination, uint64_t *cookie) {
         int r;
 
-        assert_return(bus, -EINVAL);
         assert_return(m, -EINVAL);
+
+        if (!bus)
+                bus = m->bus;
+
         assert_return(!bus_pid_changed(bus), -ECHILD);
 
         if (!BUS_IS_OPEN(bus->state))
@@ -1838,11 +1844,14 @@ _public_ int sd_bus_call_async(
         _cleanup_bus_slot_unref_ sd_bus_slot *s = NULL;
         int r;
 
-        assert_return(bus, -EINVAL);
         assert_return(m, -EINVAL);
         assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL);
         assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL);
         assert_return(callback, -EINVAL);
+
+        if (!bus)
+                bus = m->bus;
+
         assert_return(!bus_pid_changed(bus), -ECHILD);
         assert_return(!bus->is_kernel || !(bus->hello_flags & KDBUS_HELLO_MONITOR), -EROFS);
 
@@ -1936,11 +1945,14 @@ _public_ int sd_bus_call(
         unsigned i;
         int r;
 
-        assert_return(bus, -EINVAL);
         assert_return(m, -EINVAL);
         assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EINVAL);
         assert_return(!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED), -EINVAL);
         assert_return(!bus_error_is_dirty(error), -EINVAL);
+
+        if (!bus)
+                bus = m->bus;
+
         assert_return(!bus_pid_changed(bus), -ECHILD);
         assert_return(!bus->is_kernel || !(bus->hello_flags & KDBUS_HELLO_MONITOR), -EROFS);
 
index 7603b0ec7279fb3618060eab3406191b367ddd96..1f5cf865b1440824cd5680053ca4a9c99efe487f 100644 (file)
@@ -428,7 +428,7 @@ static int method_list_sessions(sd_bus_message *message, void *userdata, sd_bus_
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_list_users(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -468,7 +468,7 @@ static int method_list_users(sd_bus_message *message, void *userdata, sd_bus_err
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_list_seats(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -505,7 +505,7 @@ static int method_list_seats(sd_bus_message *message, void *userdata, sd_bus_err
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_list_inhibitors(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -543,7 +543,7 @@ static int method_list_inhibitors(sd_bus_message *message, void *userdata, sd_bu
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_create_session(sd_bus_message *message, void *userdata, sd_bus_error *error) {
index 4e73467b0640357277f5e310ae7dbdd3866d5136..0892479a9aa7a137f4d9fbd6bacb3bafaf3f5ae1 100644 (file)
@@ -335,7 +335,7 @@ int bus_machine_method_get_addresses(sd_bus_message *message, void *userdata, sd
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 int bus_machine_method_get_os_release(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -426,7 +426,7 @@ int bus_machine_method_get_os_release(sd_bus_message *message, void *userdata, s
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 int bus_machine_method_open_pty(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -458,7 +458,7 @@ int bus_machine_method_open_pty(sd_bus_message *message, void *userdata, sd_bus_
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 int bus_machine_method_open_login(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -551,7 +551,7 @@ int bus_machine_method_open_login(sd_bus_message *message, void *userdata, sd_bu
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(reply), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 int bus_machine_method_bind_mount(sd_bus_message *message, void *userdata, sd_bus_error *error) {
index 5036a63985673b4f8e807847fd7bf2a775e012a9..0e971a6789ad1d8ef9bcecf065af98c7a5e0a563 100644 (file)
@@ -255,7 +255,7 @@ static int method_list_machines(sd_bus_message *message, void *userdata, sd_bus_
         if (r < 0)
                 return sd_bus_error_set_errno(error, r);
 
-        return sd_bus_send(sd_bus_message_get_bus(message), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_create_or_register_machine(Manager *manager, sd_bus_message *message, bool read_network, Machine **_m, sd_bus_error *error) {
@@ -593,7 +593,7 @@ static int method_list_images(sd_bus_message *message, void *userdata, sd_bus_er
         if (r < 0)
                 return r;
 
-        return sd_bus_send(sd_bus_message_get_bus(message), reply, NULL);
+        return sd_bus_send(NULL, reply, NULL);
 }
 
 static int method_open_machine_pty(sd_bus_message *message, void *userdata, sd_bus_error *error) {