diff options
-rw-r--r-- | src/bus-driverd/bus-driverd.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/bus-driverd/bus-driverd.c b/src/bus-driverd/bus-driverd.c index 7e0ad1e0c0..46a5b10974 100644 --- a/src/bus-driverd/bus-driverd.c +++ b/src/bus-driverd/bus-driverd.c @@ -130,7 +130,10 @@ static int match_new(Client *c, struct bus_match_component *components, unsigned first = hashmap_get(c->matches, m->match); LIST_PREPEND(matches, first, m); r = hashmap_replace(c->matches, m->match, first); - if (r < 0) { + if (r == 0) { + log_debug("Match '%s' already installed, ignoring request.", m->match); + LIST_REMOVE(matches, first, m); + } else if (r < 0) { LIST_REMOVE(matches, first, m); goto fail; } |