mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-20 00:21:29 +00:00
libnm/libnm-glib: clean up VPN plugin timeouts
Use nm_clear_g_source().
This commit is contained in:
parent
eab32a5252
commit
aa7ab4b056
|
@ -28,6 +28,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-connection.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-macros-internal.h"
|
||||
|
||||
static gboolean impl_vpn_plugin_connect (NMVPNPlugin *plugin,
|
||||
GHashTable *connection,
|
||||
|
@ -257,6 +258,7 @@ connect_timer_expired (gpointer data)
|
|||
NMVPNPlugin *plugin = NM_VPN_PLUGIN (data);
|
||||
GError *err = NULL;
|
||||
|
||||
NM_VPN_PLUGIN_GET_PRIVATE (plugin)->connect_timer = 0;
|
||||
g_message ("Connect timer expired, disconnecting.");
|
||||
nm_vpn_plugin_disconnect (plugin, &err);
|
||||
if (err) {
|
||||
|
@ -264,26 +266,27 @@ connect_timer_expired (gpointer data)
|
|||
g_error_free (err);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
quit_timer_expired (gpointer data)
|
||||
{
|
||||
NMVPNPlugin *plugin = NM_VPN_PLUGIN (data);
|
||||
NMVPNPlugin *self = NM_VPN_PLUGIN (data);
|
||||
|
||||
nm_vpn_plugin_emit_quit (plugin);
|
||||
|
||||
return FALSE;
|
||||
NM_VPN_PLUGIN_GET_PRIVATE (self)->quit_timer = 0;
|
||||
nm_vpn_plugin_emit_quit (self);
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
fail_stop (gpointer data)
|
||||
{
|
||||
NMVPNPlugin *plugin = NM_VPN_PLUGIN (data);
|
||||
NMVPNPlugin *self = NM_VPN_PLUGIN (data);
|
||||
|
||||
nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STOPPED);
|
||||
return FALSE;
|
||||
NM_VPN_PLUGIN_GET_PRIVATE (self)->fail_stop_id = 0;
|
||||
nm_vpn_plugin_set_state (self, NM_VPN_SERVICE_STATE_STOPPED);
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -291,8 +294,7 @@ schedule_fail_stop (NMVPNPlugin *plugin)
|
|||
{
|
||||
NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (plugin);
|
||||
|
||||
if (priv->fail_stop_id)
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
priv->fail_stop_id = g_idle_add (fail_stop, plugin);
|
||||
}
|
||||
|
||||
|
@ -408,22 +410,12 @@ nm_vpn_plugin_set_ip6_config (NMVPNPlugin *plugin,
|
|||
nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED);
|
||||
}
|
||||
|
||||
static void
|
||||
connect_timer_removed (gpointer data)
|
||||
{
|
||||
NM_VPN_PLUGIN_GET_PRIVATE (data)->connect_timer = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
connect_timer_start (NMVPNPlugin *plugin)
|
||||
{
|
||||
NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (plugin);
|
||||
|
||||
priv->connect_timer = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT,
|
||||
60,
|
||||
connect_timer_expired,
|
||||
plugin,
|
||||
connect_timer_removed);
|
||||
priv->connect_timer = g_timeout_add_seconds (60, connect_timer_expired, plugin);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -638,8 +630,7 @@ nm_vpn_plugin_secrets_required (NMVPNPlugin *plugin,
|
|||
/* Cancel the connect timer since secrets might take a while. It'll
|
||||
* get restarted when the secrets come back via NewSecrets().
|
||||
*/
|
||||
if (priv->connect_timer)
|
||||
g_source_remove (priv->connect_timer);
|
||||
nm_clear_g_source (&priv->connect_timer);
|
||||
|
||||
g_signal_emit (plugin, signals[SECRETS_REQUIRED], 0, message, hints);
|
||||
}
|
||||
|
@ -848,10 +839,9 @@ dispose (GObject *object)
|
|||
NMVPNServiceState state;
|
||||
GError *err = NULL;
|
||||
|
||||
if (priv->fail_stop_id) {
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
priv->fail_stop_id = 0;
|
||||
}
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
nm_clear_g_source (&priv->quit_timer);
|
||||
nm_clear_g_source (&priv->connect_timer);
|
||||
|
||||
state = nm_vpn_plugin_get_state (plugin);
|
||||
|
||||
|
@ -888,12 +878,6 @@ finalize (GObject *object)
|
|||
G_OBJECT_CLASS (nm_vpn_plugin_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
quit_timer_removed (gpointer data)
|
||||
{
|
||||
NM_VPN_PLUGIN_GET_PRIVATE (data)->quit_timer = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
state_changed (NMVPNPlugin *plugin, NMVPNServiceState state)
|
||||
{
|
||||
|
@ -901,34 +885,19 @@ state_changed (NMVPNPlugin *plugin, NMVPNServiceState state)
|
|||
|
||||
switch (state) {
|
||||
case NM_VPN_SERVICE_STATE_STARTING:
|
||||
/* Remove the quit timer. */
|
||||
if (priv->quit_timer)
|
||||
g_source_remove (priv->quit_timer);
|
||||
|
||||
if (priv->fail_stop_id) {
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
priv->fail_stop_id = 0;
|
||||
}
|
||||
nm_clear_g_source (&priv->quit_timer);
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
break;
|
||||
case NM_VPN_SERVICE_STATE_STOPPED:
|
||||
priv->quit_timer = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT,
|
||||
NM_VPN_PLUGIN_QUIT_TIMER,
|
||||
quit_timer_expired,
|
||||
plugin,
|
||||
quit_timer_removed);
|
||||
priv->quit_timer = g_timeout_add_seconds (NM_VPN_PLUGIN_QUIT_TIMER,
|
||||
quit_timer_expired,
|
||||
plugin);
|
||||
break;
|
||||
default:
|
||||
/* Clean up all timers we might have set up. */
|
||||
if (priv->connect_timer)
|
||||
g_source_remove (priv->connect_timer);
|
||||
|
||||
if (priv->quit_timer)
|
||||
g_source_remove (priv->quit_timer);
|
||||
|
||||
if (priv->fail_stop_id) {
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
priv->fail_stop_id = 0;
|
||||
}
|
||||
nm_clear_g_source (&priv->connect_timer);
|
||||
nm_clear_g_source (&priv->quit_timer);
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "nm-dbus-helpers.h"
|
||||
#include "nm-core-internal.h"
|
||||
#include "nm-simple-connection.h"
|
||||
#include "nm-macros-internal.h"
|
||||
|
||||
#include "nmdbus-vpn-plugin.h"
|
||||
|
||||
|
@ -230,6 +231,7 @@ connect_timer_expired (gpointer data)
|
|||
NMVpnPluginOld *plugin = NM_VPN_PLUGIN_OLD (data);
|
||||
GError *err = NULL;
|
||||
|
||||
NM_VPN_PLUGIN_OLD_GET_PRIVATE (plugin)->connect_timer = 0;
|
||||
g_message ("Connect timer expired, disconnecting.");
|
||||
nm_vpn_plugin_old_disconnect (plugin, &err);
|
||||
if (err) {
|
||||
|
@ -237,26 +239,27 @@ connect_timer_expired (gpointer data)
|
|||
g_error_free (err);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
quit_timer_expired (gpointer data)
|
||||
{
|
||||
NMVpnPluginOld *plugin = NM_VPN_PLUGIN_OLD (data);
|
||||
NMVpnPluginOld *self = NM_VPN_PLUGIN_OLD (data);
|
||||
|
||||
nm_vpn_plugin_old_emit_quit (plugin);
|
||||
|
||||
return FALSE;
|
||||
NM_VPN_PLUGIN_OLD_GET_PRIVATE (self)->quit_timer = 0;
|
||||
nm_vpn_plugin_old_emit_quit (self);
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
fail_stop (gpointer data)
|
||||
{
|
||||
NMVpnPluginOld *plugin = NM_VPN_PLUGIN_OLD (data);
|
||||
NMVpnPluginOld *self = NM_VPN_PLUGIN_OLD (data);
|
||||
|
||||
nm_vpn_plugin_old_set_state (plugin, NM_VPN_SERVICE_STATE_STOPPED);
|
||||
return FALSE;
|
||||
NM_VPN_PLUGIN_OLD_GET_PRIVATE (self)->fail_stop_id = 0;
|
||||
nm_vpn_plugin_old_set_state (self, NM_VPN_SERVICE_STATE_STOPPED);
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -264,8 +267,7 @@ schedule_fail_stop (NMVpnPluginOld *plugin)
|
|||
{
|
||||
NMVpnPluginOldPrivate *priv = NM_VPN_PLUGIN_OLD_GET_PRIVATE (plugin);
|
||||
|
||||
if (priv->fail_stop_id)
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
priv->fail_stop_id = g_idle_add (fail_stop, plugin);
|
||||
}
|
||||
|
||||
|
@ -369,22 +371,12 @@ nm_vpn_plugin_old_set_ip6_config (NMVpnPluginOld *plugin,
|
|||
nm_vpn_plugin_old_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED);
|
||||
}
|
||||
|
||||
static void
|
||||
connect_timer_removed (gpointer data)
|
||||
{
|
||||
NM_VPN_PLUGIN_OLD_GET_PRIVATE (data)->connect_timer = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
connect_timer_start (NMVpnPluginOld *plugin)
|
||||
{
|
||||
NMVpnPluginOldPrivate *priv = NM_VPN_PLUGIN_OLD_GET_PRIVATE (plugin);
|
||||
|
||||
priv->connect_timer = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT,
|
||||
60,
|
||||
connect_timer_expired,
|
||||
plugin,
|
||||
connect_timer_removed);
|
||||
priv->connect_timer = g_timeout_add_seconds (60, connect_timer_expired, plugin);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -607,8 +599,7 @@ nm_vpn_plugin_old_secrets_required (NMVpnPluginOld *plugin,
|
|||
/* Cancel the connect timer since secrets might take a while. It'll
|
||||
* get restarted when the secrets come back via NewSecrets().
|
||||
*/
|
||||
if (priv->connect_timer)
|
||||
g_source_remove (priv->connect_timer);
|
||||
nm_clear_g_source (&priv->connect_timer);
|
||||
|
||||
g_signal_emit (plugin, signals[SECRETS_REQUIRED], 0, message, hints);
|
||||
}
|
||||
|
@ -993,10 +984,9 @@ dispose (GObject *object)
|
|||
NMVpnServiceState state;
|
||||
GError *err = NULL;
|
||||
|
||||
if (priv->fail_stop_id) {
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
priv->fail_stop_id = 0;
|
||||
}
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
nm_clear_g_source (&priv->quit_timer);
|
||||
nm_clear_g_source (&priv->connect_timer);
|
||||
|
||||
state = nm_vpn_plugin_old_get_state (plugin);
|
||||
|
||||
|
@ -1029,12 +1019,6 @@ finalize (GObject *object)
|
|||
G_OBJECT_CLASS (nm_vpn_plugin_old_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
quit_timer_removed (gpointer data)
|
||||
{
|
||||
NM_VPN_PLUGIN_OLD_GET_PRIVATE (data)->quit_timer = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
state_changed (NMVpnPluginOld *plugin, NMVpnServiceState state)
|
||||
{
|
||||
|
@ -1042,34 +1026,19 @@ state_changed (NMVpnPluginOld *plugin, NMVpnServiceState state)
|
|||
|
||||
switch (state) {
|
||||
case NM_VPN_SERVICE_STATE_STARTING:
|
||||
/* Remove the quit timer. */
|
||||
if (priv->quit_timer)
|
||||
g_source_remove (priv->quit_timer);
|
||||
|
||||
if (priv->fail_stop_id) {
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
priv->fail_stop_id = 0;
|
||||
}
|
||||
nm_clear_g_source (&priv->quit_timer);
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
break;
|
||||
case NM_VPN_SERVICE_STATE_STOPPED:
|
||||
priv->quit_timer = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT,
|
||||
NM_VPN_PLUGIN_OLD_QUIT_TIMER,
|
||||
quit_timer_expired,
|
||||
plugin,
|
||||
quit_timer_removed);
|
||||
priv->quit_timer = g_timeout_add_seconds (NM_VPN_PLUGIN_OLD_QUIT_TIMER,
|
||||
quit_timer_expired,
|
||||
plugin);
|
||||
break;
|
||||
default:
|
||||
/* Clean up all timers we might have set up. */
|
||||
if (priv->connect_timer)
|
||||
g_source_remove (priv->connect_timer);
|
||||
|
||||
if (priv->quit_timer)
|
||||
g_source_remove (priv->quit_timer);
|
||||
|
||||
if (priv->fail_stop_id) {
|
||||
g_source_remove (priv->fail_stop_id);
|
||||
priv->fail_stop_id = 0;
|
||||
}
|
||||
nm_clear_g_source (&priv->connect_timer);
|
||||
nm_clear_g_source (&priv->quit_timer);
|
||||
nm_clear_g_source (&priv->fail_stop_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue