chiark / gitweb /
bus: implicitly set no_reply flag on outgoing messages if the serial number is not...
authorLennart Poettering <lennart@poettering.net>
Thu, 21 Mar 2013 22:01:59 +0000 (23:01 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 21 Mar 2013 23:12:37 +0000 (00:12 +0100)
If nobody keeps the serial number of an outgoing message we know that
nobody expects an answer to it, so set the no_reply flag accordingly.

src/libsystemd-bus/sd-bus.c
src/libsystemd-bus/sd-bus.h

index d0a3608..ad840cc 100644 (file)
@@ -1057,6 +1057,11 @@ int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) {
         if (!m)
                 return -EINVAL;
 
         if (!m)
                 return -EINVAL;
 
+        /* If the serial number isn't kept, then we know that no reply
+         * is expected */
+        if (!serial && !m->sealed)
+                m->header->flags |= SD_BUS_MESSAGE_NO_REPLY_EXPECTED;
+
         r = bus_seal_message(bus, m);
         if (r < 0)
                 return r;
         r = bus_seal_message(bus, m);
         if (r < 0)
                 return r;
index ce92ee7..a759f54 100644 (file)
@@ -33,7 +33,6 @@
  * - add page donation logic
  * - api for appending/reading fixed arrays
  * - always verify container depth
  * - add page donation logic
  * - api for appending/reading fixed arrays
  * - always verify container depth
- * - implicitly set no_reply when a message-call is sent an the serial number ignored
  * - handle NULL strings nicer when appending
  * - merge busctl into systemctl or so?
  * - add object handlers
  * - handle NULL strings nicer when appending
  * - merge busctl into systemctl or so?
  * - add object handlers