summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-bus/bus-match.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-06-17 11:42:39 +0200
committerLennart Poettering <lennart@poettering.net>2015-06-17 11:42:39 +0200
commitcc65fe5e14770d0116e0f475c5dc2ef57113bc98 (patch)
tree90a3ea575e749110fb7273d99b13896fedc823c6 /src/libsystemd/sd-bus/bus-match.h
parent3eb3228e583e7e07dc3f2d17ea02dcb06f30fcc0 (diff)
sd-bus: suppress installing local bus matches server side
Matches that can only match against messages from the org.freedesktop.DBus.Local service (or the local interfaces or path) should never be installed server side, suppress them hence. Similar, on kdbus matches that can only match driver messages shouldn't be passed to the kernel.
Diffstat (limited to 'src/libsystemd/sd-bus/bus-match.h')
-rw-r--r--src/libsystemd/sd-bus/bus-match.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libsystemd/sd-bus/bus-match.h b/src/libsystemd/sd-bus/bus-match.h
index af5f65d073..56516be9fa 100644
--- a/src/libsystemd/sd-bus/bus-match.h
+++ b/src/libsystemd/sd-bus/bus-match.h
@@ -73,6 +73,12 @@ struct bus_match_component {
char *value_str;
};
+enum bus_match_scope {
+ BUS_MATCH_GENERIC,
+ BUS_MATCH_LOCAL,
+ BUS_MATCH_DRIVER,
+};
+
int bus_match_run(sd_bus *bus, struct bus_match_node *root, sd_bus_message *m);
int bus_match_add(struct bus_match_node *root, struct bus_match_component *components, unsigned n_components, struct match_callback *callback);
@@ -90,3 +96,5 @@ enum bus_match_node_type bus_match_node_type_from_string(const char *k, size_t n
int bus_match_parse(const char *match, struct bus_match_component **_components, unsigned *_n_components);
void bus_match_parse_free(struct bus_match_component *components, unsigned n_components);
char *bus_match_to_string(struct bus_match_component *components, unsigned n_components);
+
+enum bus_match_scope bus_match_get_scope(const struct bus_match_component *components, unsigned n_components);