chiark / gitweb /
bus: add api to control auto start message flag
authorLennart Poettering <lennart@poettering.net>
Mon, 11 Nov 2013 22:42:00 +0000 (23:42 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 11 Nov 2013 23:12:44 +0000 (00:12 +0100)
src/libsystemd-bus/bus-message.c
src/libsystemd-bus/libsystemd-bus.sym
src/systemd/sd-bus.h

index b26d446578951cd5b75dd3cc72e63294b8efb84f..d7774db09a46b8be2204afe4793c9fccfd9869ad 100644 (file)
@@ -777,6 +777,12 @@ _public_ int sd_bus_message_get_no_reply(sd_bus_message *m) {
         return m->header->type == SD_BUS_MESSAGE_METHOD_CALL ? !!(m->header->flags & SD_BUS_MESSAGE_NO_REPLY_EXPECTED) : 0;
 }
 
+_public_ int sd_bus_message_get_no_auto_start(sd_bus_message *m) {
+        assert_return(m, -EINVAL);
+
+        return !!(m->header->flags & SD_BUS_MESSAGE_NO_AUTO_START);
+}
+
 _public_ const char *sd_bus_message_get_path(sd_bus_message *m) {
         assert_return(m, NULL);
 
@@ -1100,6 +1106,18 @@ _public_ int sd_bus_message_set_no_reply(sd_bus_message *m, int b) {
         return 0;
 }
 
+_public_ int sd_bus_message_set_no_auto_start(sd_bus_message *m, int b) {
+        assert_return(m, -EINVAL);
+        assert_return(!m->sealed, -EPERM);
+
+        if (b)
+                m->header->flags |= SD_BUS_MESSAGE_NO_AUTO_START;
+        else
+                m->header->flags &= ~SD_BUS_MESSAGE_NO_AUTO_START;
+
+        return 0;
+}
+
 static struct bus_container *message_get_container(sd_bus_message *m) {
         assert(m);
 
index b6ad84b98b6bb5d15f9e3fab5a4174d47e2e1895..8f1dba2489171f3219e97affac30d43b18738078 100644 (file)
@@ -85,6 +85,7 @@ global:
         sd_bus_message_get_serial;
         sd_bus_message_get_reply_serial;
         sd_bus_message_get_no_reply;
+        sd_bus_message_get_no_auto_start;
         sd_bus_message_get_signature;
         sd_bus_message_get_path;
         sd_bus_message_get_interface;
@@ -117,6 +118,7 @@ global:
         sd_bus_message_is_method_call;
         sd_bus_message_is_method_error;
         sd_bus_message_set_no_reply;
+        sd_bus_message_set_no_auto_start;
         sd_bus_message_set_destination;
         sd_bus_message_append;
         sd_bus_message_append_basic;
index ef5984f45bef0b520c2baa756eca52fde6adad06..61f232c79b4793246d24860128cf271d5f64246d 100644 (file)
@@ -149,6 +149,7 @@ int sd_bus_message_get_type(sd_bus_message *m, uint8_t *type);
 int sd_bus_message_get_serial(sd_bus_message *m, uint64_t *serial);
 int sd_bus_message_get_reply_serial(sd_bus_message *m, uint64_t *serial);
 int sd_bus_message_get_no_reply(sd_bus_message *m);
+int sd_bus_message_get_no_auto_start(sd_bus_message *m);
 
 const char *sd_bus_message_get_signature(sd_bus_message *m, int complete);
 const char *sd_bus_message_get_path(sd_bus_message *m);
@@ -185,6 +186,7 @@ int sd_bus_message_is_method_call(sd_bus_message *m, const char *interface, cons
 int sd_bus_message_is_method_error(sd_bus_message *m, const char *name);
 
 int sd_bus_message_set_no_reply(sd_bus_message *m, int b);
+int sd_bus_message_set_no_auto_start(sd_bus_message *m, int b);
 int sd_bus_message_set_destination(sd_bus_message *m, const char *destination);
 
 int sd_bus_message_append(sd_bus_message *m, const char *types, ...);