diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c index 239f5a6cc2..15b4b48553 100644 --- a/src/nm-active-connection.c +++ b/src/nm-active-connection.c @@ -27,6 +27,7 @@ #include "nm-dbus-manager.h" #include "nm-properties-changed-signal.h" #include "nm-device.h" +#include "nm-settings-connection.h" #include "nm-active-connection-glue.h" @@ -95,10 +96,19 @@ nm_active_connection_set_state (NMActiveConnection *self, NMActiveConnectionState new_state) { NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); + NMActiveConnectionState old_state; - if (priv->state != new_state) { - priv->state = new_state; - g_object_notify (G_OBJECT (self), NM_ACTIVE_CONNECTION_STATE); + if (priv->state == new_state) + return; + + old_state = priv->state; + priv->state = new_state; + g_object_notify (G_OBJECT (self), NM_ACTIVE_CONNECTION_STATE); + + if ( new_state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED + || old_state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { + nm_settings_connection_update_timestamp (NM_SETTINGS_CONNECTION (priv->connection), + (guint64) time (NULL), TRUE); } } diff --git a/src/nm-device.c b/src/nm-device.c index 99dced2b4b..c4cfbce038 100644 --- a/src/nm-device.c +++ b/src/nm-device.c @@ -4789,15 +4789,6 @@ nm_device_state_changed (NMDevice *device, /* Cache the activation request for the dispatcher */ req = priv->act_request ? g_object_ref (priv->act_request) : NULL; - /* Update connection timestamps; do this before possibly deactivating the - * device since that will clear the activation request and thus the - * connection, which we need. - */ - if (state == NM_DEVICE_STATE_ACTIVATED || old_state == NM_DEVICE_STATE_ACTIVATED) { - nm_settings_connection_update_timestamp (NM_SETTINGS_CONNECTION (nm_act_request_get_connection (req)), - (guint64) time (NULL), TRUE); - } - if (state <= NM_DEVICE_STATE_UNAVAILABLE) _clear_available_connections (device, TRUE); diff --git a/src/nm-manager.c b/src/nm-manager.c index d5ef09f689..6bd31700b1 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -223,7 +223,6 @@ typedef struct { gboolean net_enabled; NMVPNManager *vpn_manager; - gulong vpn_manager_activated_id; NMModemManager *modem_manager; guint modem_added_id; @@ -430,18 +429,6 @@ manager_sleeping (NMManager *self) return FALSE; } -static void -vpn_manager_connection_activated_cb (NMVPNManager *manager, - NMVPNConnection *vpn, - gpointer user_data) -{ - NMConnection *connection = nm_vpn_connection_get_connection (vpn); - - /* Update timestamp for the VPN connection */ - nm_settings_connection_update_timestamp (NM_SETTINGS_CONNECTION (connection), - (guint64) time (NULL), TRUE); -} - static void modem_added (NMModemManager *modem_manager, NMModem *modem, @@ -4087,11 +4074,6 @@ dispose (GObject *object) g_free (priv->hostname); g_object_unref (priv->settings); - - if (priv->vpn_manager_activated_id) { - g_source_remove (priv->vpn_manager_activated_id); - priv->vpn_manager_activated_id = 0; - } g_object_unref (priv->vpn_manager); if (priv->modem_added_id) { @@ -4407,8 +4389,6 @@ nm_manager_init (NMManager *manager) G_CALLBACK (modem_removed), manager); priv->vpn_manager = nm_vpn_manager_get (); - priv->vpn_manager_activated_id = g_signal_connect (G_OBJECT (priv->vpn_manager), "connection-activated", - G_CALLBACK (vpn_manager_connection_activated_cb), manager); g_connection = nm_dbus_manager_get_connection (priv->dbus_mgr);