summaryrefslogtreecommitdiff
path: root/src/libelogind/sd-bus
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@gmail.com>2015-06-10 20:14:56 +0200
committerSven Eden <yamakuzure@gmx.net>2017-03-14 10:01:50 +0100
commit5930e050df5ca4d74be1e18680106c05bddbde00 (patch)
tree98fa86dc1f9dcbeaf01ca9fa61d3628f5ef43a43 /src/libelogind/sd-bus
parentc7ebb4bc4ee84c1235fb60d110ab6498c44c12a3 (diff)
bus: we now support path_namespace=/
Our bloom-filters support root-path matching. Make sure we properly add the path_namespace= tag.
Diffstat (limited to 'src/libelogind/sd-bus')
-rw-r--r--src/libelogind/sd-bus/bus-control.c6
-rw-r--r--src/libelogind/sd-bus/test-bus-kernel-bloom.c1
2 files changed, 3 insertions, 4 deletions
diff --git a/src/libelogind/sd-bus/bus-control.c b/src/libelogind/sd-bus/bus-control.c
index c6d962129..7a59702cb 100644
--- a/src/libelogind/sd-bus/bus-control.c
+++ b/src/libelogind/sd-bus/bus-control.c
@@ -1291,10 +1291,8 @@ int bus_add_match_internal_kernel(
break;
case BUS_MATCH_PATH_NAMESPACE:
- if (!streq(c->value_str, "/")) {
- bloom_add_pair(bloom, bus->bloom_size, bus->bloom_n_hash, "path-slash-prefix", c->value_str);
- using_bloom = true;
- }
+ bloom_add_pair(bloom, bus->bloom_size, bus->bloom_n_hash, "path-slash-prefix", c->value_str);
+ using_bloom = true;
break;
case BUS_MATCH_ARG...BUS_MATCH_ARG_LAST: {
diff --git a/src/libelogind/sd-bus/test-bus-kernel-bloom.c b/src/libelogind/sd-bus/test-bus-kernel-bloom.c
index 01f784f8c..90eb1f2a3 100644
--- a/src/libelogind/sd-bus/test-bus-kernel-bloom.c
+++ b/src/libelogind/sd-bus/test-bus-kernel-bloom.c
@@ -123,6 +123,7 @@ int main(int argc, char *argv[]) {
test_one("/foo/bar/waldo", "waldo.com", "Piep", false, "foobar", "path_namespace='/foo'", true);
test_one("/foo/bar/waldo", "waldo.com", "Piep", false, "foobar", "path_namespace='/'", true);
test_one("/foo/bar/waldo", "waldo.com", "Piep", false, "foobar", "path_namespace='/quux'", false);
+ test_one("/", "waldo.com", "Piep", false, "foobar", "path_namespace='/'", true);
test_one("/foo/bar/waldo", "waldo.com", "Piep", false, "foobar", "path='/foo/bar/waldo/'", false);
test_one("/foo/bar/waldo", "waldo.com", "Piep", false, "foobar", "path='/foo/'", false);