summaryrefslogtreecommitdiffstats
path: root/src/modules/module-console-kit.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-07-24 02:21:58 +0200
committerLennart Poettering <lennart@poettering.net>2008-07-24 02:21:58 +0200
commit49f09d6d0eadd67d75190a9001fe715dc486cd36 (patch)
tree7bf884aa215d71e6b8099843897f4f055e4e89ce /src/modules/module-console-kit.c
parent23a3c55c5152977a0f4addcce9f5d4085a8105a4 (diff)
fix destruction of dbus modules: make sure we don't leave filter function registered after unreffing the dbus connection
Diffstat (limited to 'src/modules/module-console-kit.c')
-rw-r--r--src/modules/module-console-kit.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/modules/module-console-kit.c b/src/modules/module-console-kit.c
index 829b43b1..3578212e 100644
--- a/src/modules/module-console-kit.c
+++ b/src/modules/module-console-kit.c
@@ -341,8 +341,17 @@ void pa__done(pa_module *m) {
pa_hashmap_free(u->sessions, NULL, NULL);
}
- if (u->connection)
+ if (u->connection) {
+ DBusError error;
+ dbus_error_init(&error);
+
+ dbus_bus_remove_match(pa_dbus_connection_get(u->connection), "type='signal',sender='org.freedesktop.ConsoleKit', interface='org.freedesktop.ConsoleKit.Seat'", &error);
+ dbus_error_free(&error);
+
+ dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u);
+
pa_dbus_connection_unref(u->connection);
+ }
pa_xfree(u);
}