chiark / gitweb /
Remove support for auto-spawning VTs
[elogind.git] / src / libelogind / sd-bus / bus-kernel.c
index 6ac5ebc3daef321626c418a13afb532e67270e7f..25fc4ba80e9e72b9854ff95a62545ff5d7cb0d63 100644 (file)
@@ -168,6 +168,27 @@ static void add_bloom_arg(void *data, size_t size, unsigned n_hash, unsigned i,
         bloom_add_prefixes(data, size, n_hash, buf, t, '/');
 }
 
+static void add_bloom_arg_has(void *data, size_t size, unsigned n_hash, unsigned i, const char *t) {
+        char buf[sizeof("arg")-1 + 2 + sizeof("-has")];
+        char *e;
+
+        assert(data);
+        assert(size > 0);
+        assert(i < 64);
+        assert(t);
+
+        e = stpcpy(buf, "arg");
+        if (i < 10)
+                *(e++) = '0' + (char) i;
+        else {
+                *(e++) = '0' + (char) (i / 10);
+                *(e++) = '0' + (char) (i % 10);
+        }
+
+        strcpy(e, "-has");
+        bloom_add_pair(data, size, n_hash, buf, t);
+}
+
 static int bus_message_setup_bloom(sd_bus_message *m, struct kdbus_bloom_filter *bloom) {
         void *data;
         unsigned i;
@@ -212,7 +233,9 @@ static int bus_message_setup_bloom(sd_bus_message *m, struct kdbus_bloom_filter
                                 return r;
 
                         add_bloom_arg(data, m->bus->bloom_size, m->bus->bloom_n_hash, i, t);
-                } if (type == SD_BUS_TYPE_ARRAY && STR_IN_SET(contents, "s", "o", "g")) {
+                }
+
+                if (type == SD_BUS_TYPE_ARRAY && STR_IN_SET(contents, "s", "o", "g")) {
 
                         /* As well as array of simple strings of any kinds */
                         r = sd_bus_message_enter_container(m, type, contents);
@@ -220,7 +243,7 @@ static int bus_message_setup_bloom(sd_bus_message *m, struct kdbus_bloom_filter
                                 return r;
 
                         while ((r = sd_bus_message_read_basic(m, contents[0], &t)) > 0)
-                                add_bloom_arg(data, m->bus->bloom_size, m->bus->bloom_n_hash, i, t);
+                                add_bloom_arg_has(data, m->bus->bloom_size, m->bus->bloom_n_hash, i, t);
                         if (r < 0)
                                 return r;
 
@@ -774,6 +797,7 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
 
                 case KDBUS_ITEM_FDS:
                 case KDBUS_ITEM_SECLABEL:
+                case KDBUS_ITEM_BLOOM_FILTER:
                         break;
 
                 default:
@@ -1556,6 +1580,8 @@ uint64_t attach_flags_to_kdbus(uint64_t mask) {
         return m;
 }
 
+/// UNNEEDED by elogind
+#if 0
 int bus_kernel_create_bus(const char *name, bool world, char **s) {
         struct kdbus_cmd *make;
         struct kdbus_item *n;
@@ -1631,6 +1657,7 @@ int bus_kernel_create_bus(const char *name, bool world, char **s) {
 
         return fd;
 }
+#endif // 0
 
 int bus_kernel_open_bus_fd(const char *bus, char **path) {
         char *p;
@@ -1664,6 +1691,8 @@ int bus_kernel_open_bus_fd(const char *bus, char **path) {
         return fd;
 }
 
+/// UNNEEDED by elogind
+#if 0
 int bus_kernel_create_endpoint(const char *bus_name, const char *ep_name, char **ep_path) {
         _cleanup_free_ char *path = NULL;
         struct kdbus_cmd *make;
@@ -1707,6 +1736,7 @@ int bus_kernel_create_endpoint(const char *bus_name, const char *ep_name, char *
 
         return fd;
 }
+#endif // 0
 
 int bus_kernel_try_close(sd_bus *bus) {
         struct kdbus_cmd byebye = { .size = sizeof(byebye) };
@@ -1720,6 +1750,8 @@ int bus_kernel_try_close(sd_bus *bus) {
         return 0;
 }
 
+/// UNNEEDED by elogind
+#if 0
 int bus_kernel_drop_one(int fd) {
         struct kdbus_cmd_recv recv = {
                 .size = sizeof(recv),
@@ -1733,6 +1765,7 @@ int bus_kernel_drop_one(int fd) {
 
         return 0;
 }
+#endif // 0
 
 int bus_kernel_realize_attach_flags(sd_bus *bus) {
         struct kdbus_cmd *update;