From 51e0e521dc0e141716ba1e790ee441df8582655a Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 28 Dec 2008 08:58:37 +0100 Subject: [PATCH] Update D-Bus filter registration and removal --- plugins/dhclient.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/dhclient.c b/plugins/dhclient.c index 2cb4930..04787d1 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); } -- 2.7.4