about summary refs log tree commit diff
path: root/src/nm-active-connection.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2017-12-12 15:53:07 +0100
committerMichael Biebl <biebl@debian.org>2017-12-12 15:53:07 +0100
commitafcd268ea7b1149fbfb66bce4eca659b675da0a2 (patch)
treec3fca2203ad17434daf3ccf576582bd66aa41ab2 /src/nm-active-connection.c
parent417f6015c3dc8c47cf27daa59f64e0e36c521b9c (diff)
New upstream version 1.10.2 upstream/1.10.2
Diffstat (limited to 'src/nm-active-connection.c')
-rw-r--r--src/nm-active-connection.c66
1 files changed, 32 insertions, 34 deletions
diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c
index 002f11f7..2286a74b 100644
--- a/src/nm-active-connection.c
+++ b/src/nm-active-connection.c
@@ -494,53 +494,46 @@ nm_active_connection_set_specific_object (NMActiveConnection *self,
 }
 
 void
-nm_active_connection_set_default (NMActiveConnection *self, gboolean is_default)
+nm_active_connection_set_default (NMActiveConnection *self,
+                                  int addr_family,
+                                  gboolean is_default)
 {
 	NMActiveConnectionPrivate *priv;
 
 	g_return_if_fail (NM_IS_ACTIVE_CONNECTION (self));
+	nm_assert (NM_IN_SET (addr_family, AF_UNSPEC, AF_INET, AF_INET6));
 
 	is_default = !!is_default;
 
 	priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self);
-	if (priv->is_default == is_default)
-		return;
-
-	priv->is_default = is_default;
-	_notify (self, PROP_DEFAULT);
+	if (NM_IN_SET (addr_family, AF_UNSPEC, AF_INET)) {
+		if (priv->is_default != is_default) {
+			priv->is_default = is_default;
+			_notify (self, PROP_DEFAULT);
+		}
+	}
+	if (NM_IN_SET (addr_family, AF_UNSPEC, AF_INET6)) {
+		if (priv->is_default6 != is_default) {
+			priv->is_default6 = is_default;
+			_notify (self, PROP_DEFAULT6);
+		}
+	}
 }
 
 gboolean
-nm_active_connection_get_default (NMActiveConnection *self)
-{
-	g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (self), FALSE);
-
-	return NM_ACTIVE_CONNECTION_GET_PRIVATE (self)->is_default;
-}
-
-void
-nm_active_connection_set_default6 (NMActiveConnection *self, gboolean is_default6)
+nm_active_connection_get_default (NMActiveConnection *self, int addr_family)
 {
 	NMActiveConnectionPrivate *priv;
 
-	g_return_if_fail (NM_IS_ACTIVE_CONNECTION (self));
-
-	is_default6 = !!is_default6;
-
-	priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self);
-	if (priv->is_default6 == is_default6)
-		return;
-
-	priv->is_default6 = is_default6;
-	_notify (self, PROP_DEFAULT6);
-}
-
-gboolean
-nm_active_connection_get_default6 (NMActiveConnection *self)
-{
 	g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (self), FALSE);
+	nm_assert (NM_IN_SET (addr_family, AF_UNSPEC, AF_INET, AF_INET6));
 
-	return NM_ACTIVE_CONNECTION_GET_PRIVATE (self)->is_default6;
+	priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self);
+	switch (addr_family) {
+	case AF_INET:   return priv->is_default;
+	case AF_INET6:  return priv->is_default6;
+	default:        return priv->is_default || priv->is_default6;
+	}
 }
 
 NMAuthSubject *
@@ -873,7 +866,8 @@ _settings_connection_notify_flags (NMSettingsConnection *settings_connection,
 	nm_assert (nm_active_connection_get_activation_type (self) == NM_ACTIVATION_TYPE_EXTERNAL);
 	nm_assert (NM_ACTIVE_CONNECTION_GET_PRIVATE (self)->settings_connection == settings_connection);
 
-	if (nm_settings_connection_get_nm_generated (settings_connection))
+	if (NM_FLAGS_HAS (nm_settings_connection_get_flags (settings_connection),
+	                  NM_SETTINGS_CONNECTION_FLAGS_NM_GENERATED))
 		return;
 
 	_set_activation_type_managed (self);
@@ -1263,10 +1257,10 @@ set_property (GObject *object, guint prop_id,
 			priv->specific_object = g_strdup (tmp);
 		break;
 	case PROP_DEFAULT:
-		priv->is_default = !!g_value_get_boolean (value);
+		priv->is_default = g_value_get_boolean (value);
 		break;
 	case PROP_DEFAULT6:
-		priv->is_default6 = !!g_value_get_boolean (value);
+		priv->is_default6 = g_value_get_boolean (value);
 		break;
 	case PROP_VPN:
 		priv->vpn = g_value_get_boolean (value);
@@ -1289,6 +1283,8 @@ nm_active_connection_init (NMActiveConnection *self)
 	priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionPrivate);
 	self->_priv = priv;
 
+	c_list_init (&self->active_connections_lst);
+
 	_LOGT ("creating");
 
 	priv->activation_type = NM_ACTIVATION_TYPE_MANAGED;
@@ -1331,6 +1327,8 @@ dispose (GObject *object)
 	NMActiveConnection *self = NM_ACTIVE_CONNECTION (object);
 	NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self);
 
+	nm_assert (!c_list_is_linked (&self->active_connections_lst));
+
 	_LOGD ("disposing");
 
 	if (priv->chain) {