summaryrefslogtreecommitdiff
path: root/plugins/dhclient.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-12-28 08:58:37 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-12-28 08:58:37 +0100
commit51e0e521dc0e141716ba1e790ee441df8582655a (patch)
tree662543c4bd2e2dc6cd69f84d994ffe6465c56f6d /plugins/dhclient.c
parent90f711afacfc4858639990ea003ec32a4cfafb83 (diff)
downloadconnman-51e0e521dc0e141716ba1e790ee441df8582655a.tar.gz
connman-51e0e521dc0e141716ba1e790ee441df8582655a.tar.bz2
connman-51e0e521dc0e141716ba1e790ee441df8582655a.zip
Update D-Bus filter registration and removal
Diffstat (limited to 'plugins/dhclient.c')
-rw-r--r--plugins/dhclient.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/plugins/dhclient.c b/plugins/dhclient.c
index 2cb4930a..04787d19 100644
--- a/plugins/dhclient.c
+++ b/plugins/dhclient.c
@@ -313,9 +313,11 @@ static DBusHandlerResult dhclient_filter(DBusConnection *conn,
static DBusConnection *connection;
+static const char *dhclient_rule = "path=" DHCLIENT_PATH
+ ",interface=" DHCLIENT_INTF;
+
static int dhclient_init(void)
{
- gchar *filter;
int err;
connection = connman_dbus_get_connection();
@@ -325,12 +327,7 @@ static int dhclient_init(void)
dbus_connection_add_filter(connection, dhclient_filter, NULL, NULL);
- filter = g_strdup_printf("interface=%s,path=%s",
- DHCLIENT_INTF, DHCLIENT_PATH);
-
- dbus_bus_add_match(connection, filter, NULL);
-
- g_free(filter);
+ dbus_bus_add_match(connection, dhclient_rule, NULL);
err = connman_driver_register(&dhclient_driver);
if (err < 0) {
@@ -358,6 +355,10 @@ static void dhclient_exit(void)
connman_driver_unregister(&dhclient_driver);
+ dbus_bus_remove_match(connection, dhclient_rule, NULL);
+
+ dbus_connection_remove_filter(connection, dhclient_filter, NULL);
+
dbus_connection_unref(connection);
}