summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2015-09-07 14:17:39 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2015-09-18 11:31:21 +0200
commitd3028eed0ae686463074e58369ed9322f296ef94 (patch)
treefbbb1b052eae32cf88030b55ff2ac568f6f2af1f
parent8cb236fa8967db4a580736a51351c7ca9a537c0e (diff)
downloadNetworkManager-bg/update-metered-on-the-fly-bgo724041.tar.gz
policy: react to firewall/metered changes on UPDATED_BY_USER signalbg/update-metered-on-the-fly-bgo724041
Subscribe to the UPDATED_BY_USER signal (instead of UPDATED) to listen for changes to the firewall zone and metered properties of a connection since these modifications are supposed to come from user intervention.
-rw-r--r--src/nm-policy.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/nm-policy.c b/src/nm-policy.c
index 78dd865ebe..a35361f17e 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -1648,6 +1648,14 @@ connection_updated (NMSettings *settings,
NMConnection *connection,
gpointer user_data)
{
+ schedule_activate_all ((NMPolicy *) user_data);
+}
+
+static void
+connection_updated_by_user (NMSettings *settings,
+ NMSettingsConnection *connection,
+ gpointer user_data)
+{
NMPolicy *policy = (NMPolicy *) user_data;
NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (policy);
const GSList *iter;
@@ -1657,25 +1665,16 @@ connection_updated (NMSettings *settings,
for (iter = nm_manager_get_devices (priv->manager); iter; iter = g_slist_next (iter)) {
NMDevice *dev = NM_DEVICE (iter->data);
- if (nm_device_get_connection (dev) == connection) {
+ if (nm_device_get_connection (dev) == NM_CONNECTION (connection)) {
device = dev;
break;
}
}
if (device) {
- firewall_update_zone (policy, connection, device);
+ firewall_update_zone (policy, NM_CONNECTION (connection), device);
nm_device_update_metered (device);
}
-
- schedule_activate_all (policy);
-}
-
-static void
-connection_updated_by_user (NMSettings *settings,
- NMSettingsConnection *connection,
- gpointer user_data)
-{
/* Reset auto retries back to default since connection was updated */
nm_settings_connection_reset_autoconnect_retries (connection);
}