chiark / gitweb /
sd-bus: sync kdbus.h (ABI break)
authorDaniel Mack <daniel@zonque.org>
Tue, 14 Oct 2014 18:03:06 +0000 (20:03 +0200)
committerDaniel Mack <daniel@zonque.org>
Tue, 14 Oct 2014 18:03:06 +0000 (20:03 +0200)
kdbus learned KDBUS_HELLO_ACCEPT_MEMFD as new connection negotiation
flag. Set it by default in systemd for now.

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

index c3dbc837d72c26f970084b879d9b59d5e9d596cb..27899c1989140d0ce193cdf14565739da9933596 100644 (file)
@@ -1566,6 +1566,7 @@ int bus_kernel_make_starter(
 
         hello->size = size;
         hello->conn_flags =
+                KDBUS_HELLO_ACCEPT_MEMFD |
                 (activating ? KDBUS_HELLO_ACTIVATOR : KDBUS_HELLO_POLICY_HOLDER) |
                 (accept_fd ? KDBUS_HELLO_ACCEPT_FD : 0);
         hello->pool_size = KDBUS_POOL_SIZE;
index 79a17f3449a55cd9ce36019f1a90e0e99c85a4eb..1ea4329ea2642bbd572c5937624f389028ed169b 100644 (file)
@@ -500,6 +500,8 @@ enum kdbus_policy_type {
  * enum kdbus_hello_flags - flags for struct kdbus_cmd_hello
  * @KDBUS_HELLO_ACCEPT_FD:     The connection allows the reception of
  *                             any passed file descriptors
+ * @KDBUS_HELLO_ACCEPT_MEMFD:  The connection allows the reception of
+ *                             any passed memfd file descriptors
  * @KDBUS_HELLO_ACTIVATOR:     Special-purpose connection which registers
  *                             a well-know name for a process to be started
  *                             when traffic arrives
@@ -514,9 +516,10 @@ enum kdbus_policy_type {
  */
 enum kdbus_hello_flags {
        KDBUS_HELLO_ACCEPT_FD           =  1ULL <<  0,
-       KDBUS_HELLO_ACTIVATOR           =  1ULL <<  1,
-       KDBUS_HELLO_POLICY_HOLDER       =  1ULL <<  2,
-       KDBUS_HELLO_MONITOR             =  1ULL <<  3,
+       KDBUS_HELLO_ACCEPT_MEMFD        =  1ULL <<  1,
+       KDBUS_HELLO_ACTIVATOR           =  1ULL <<  2,
+       KDBUS_HELLO_POLICY_HOLDER       =  1ULL <<  3,
+       KDBUS_HELLO_MONITOR             =  1ULL <<  4,
 };
 
 /**
index 549f9e09433c7bf87ceb2d83ac908b5c78760671..e34a6bbd8798deabbd68c169bbcf7ea8d3d4fda0 100644 (file)
@@ -171,7 +171,7 @@ _public_ int sd_bus_new(sd_bus **ret) {
         r->input_fd = r->output_fd = -1;
         r->message_version = 1;
         r->creds_mask |= SD_BUS_CREDS_WELL_KNOWN_NAMES|SD_BUS_CREDS_UNIQUE_NAME;
-        r->hello_flags |= KDBUS_HELLO_ACCEPT_FD;
+        r->hello_flags |= KDBUS_HELLO_ACCEPT_FD | KDBUS_HELLO_ACCEPT_MEMFD;
         r->attach_flags |= KDBUS_ATTACH_NAMES;
         r->original_pid = getpid();