chiark / gitweb /
kdbus: generare bloom filters properly for messages we send
[elogind.git] / src / libsystemd-bus / bus-internal.h
index 4997936fa9a8680595e7c51aa6ebc2c6518a6c67..4babfac86dbe40bec7cf87571a759506b5182e60 100644 (file)
@@ -46,6 +46,8 @@ struct filter_callback {
         sd_bus_message_handler_t callback;
         void *userdata;
 
+        unsigned last_iteration;
+
         LIST_FIELDS(struct filter_callback, callbacks);
 };
 
@@ -55,6 +57,8 @@ struct object_callback {
 
         char *path;
         bool is_fallback;
+
+        unsigned last_iteration;
 };
 
 enum bus_state {
@@ -77,12 +81,19 @@ struct sd_bus {
         int input_fd, output_fd;
         int message_version;
 
+        bool is_kernel:1;
         bool negotiate_fds:1;
         bool can_fds:1;
         bool bus_client:1;
         bool ucred_valid:1;
         bool is_server:1;
         bool anonymous_auth:1;
+        bool prefer_readv:1;
+        bool prefer_writev:1;
+        bool processing:1;
+        bool match_callbacks_modified:1;
+        bool filter_callbacks_modified:1;
+        bool object_callbacks_modified:1;
 
         void *rbuffer;
         size_t rbuffer_size;
@@ -112,6 +123,8 @@ struct sd_bus {
         } sockaddr;
         socklen_t sockaddr_size;
 
+        char *kernel;
+
         sd_id128_t server_id;
 
         char *address;
@@ -136,6 +149,7 @@ struct sd_bus {
         char **exec_argv;
 
         uint64_t hello_serial;
+        unsigned iteration_counter;
 };
 
 static inline void bus_unrefp(sd_bus **b) {
@@ -175,6 +189,7 @@ bool namespace_simple_pattern(const char *pattern, const char *value);
 bool path_simple_pattern(const char *pattern, const char *value);
 
 int bus_message_type_from_string(const char *s, uint8_t *u);
+const char *bus_message_type_to_string(uint8_t u);
 
 #define error_name_is_valid interface_name_is_valid