Commit 929f36c5 authored by Thomas Haller's avatar Thomas Haller
Browse files

libnm/vpn: unexport and destroy D-Bus glue instance with NMVpnServicePlugin

Otherwise, we might still be called back with D-Bus requests, after
the NMVpnServicePlugin instance is already destroyed.
parent 1cf1843f
......@@ -972,11 +972,6 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
goto out;
priv->dbus_vpn_service_plugin = nmdbus_vpn_plugin_skeleton_new ();
if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (priv->dbus_vpn_service_plugin),
connection,
NM_VPN_DBUS_PLUGIN_PATH,
error))
goto out;
_nm_dbus_bind_properties (plugin, priv->dbus_vpn_service_plugin);
_nm_dbus_bind_methods (plugin, priv->dbus_vpn_service_plugin,
......@@ -991,6 +986,12 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
"SetFailure", impl_vpn_service_plugin_set_failure,
NULL);
if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (priv->dbus_vpn_service_plugin),
connection,
NM_VPN_DBUS_PLUGIN_PATH,
error))
goto out;
nm_vpn_service_plugin_set_connection (plugin, connection);
nm_vpn_service_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_INIT);
......@@ -1085,6 +1086,11 @@ dispose (GObject *object)
g_error_free (err);
}
if (priv->dbus_vpn_service_plugin) {
g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (priv->dbus_vpn_service_plugin));
g_clear_object (&priv->dbus_vpn_service_plugin);
}
G_OBJECT_CLASS (nm_vpn_service_plugin_parent_class)->dispose (object);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment