summary refs log tree commit diff
path: root/src/vpn-manager
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2016-04-20 21:11:10 +0200
committerMichael Biebl <biebl@debian.org>2016-04-20 21:11:10 +0200
commit78c3b8801ecf4975e5da1af3b10ae20dd2d876de (patch)
tree19b80fbe9429f554a48ed126911026d4fa8a4b3f /src/vpn-manager
parent288a08a3672a89a9bfdb8354b6863cc039759fc2 (diff)
Imported Upstream version 1.2.0 upstream/1.2.0
Diffstat (limited to 'src/vpn-manager')
-rw-r--r--src/vpn-manager/nm-vpn-connection.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c
index 2945ad34..a1cd0c32 100644
--- a/src/vpn-manager/nm-vpn-connection.c
+++ b/src/vpn-manager/nm-vpn-connection.c
@@ -1210,7 +1210,7 @@ process_generic_config (NMVpnConnection *self, GVariant *dict)
 	const char *str;
 	GVariant *v;
 	guint32 u32;
-	gboolean b, success = FALSE;
+	gboolean b;
 
 	if (g_variant_lookup (dict, NM_VPN_PLUGIN_CAN_PERSIST, "b", &b) && b) {
 		/* Defaults to FALSE, so only let service indicate TRUE */
@@ -1246,17 +1246,15 @@ process_generic_config (NMVpnConnection *self, GVariant *dict)
 
 	if (g_variant_lookup (dict, NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY, "u", &u32)) {
 		priv->ip4_external_gw = u32;
-		success = TRUE;
 	} else if (g_variant_lookup (dict, NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY, "@ay", &v)) {
 		priv->ip6_external_gw = ip6_addr_dup_from_variant (v);
-		success = !!priv->ip6_external_gw;
 		g_variant_unref (v);
-	}
 
-	if (!success) {
-		_LOGE ("VPN gateway is neither IPv4 nor IPv6");
-		nm_vpn_connection_config_maybe_complete (self, FALSE);
-		return FALSE;
+		if (!priv->ip6_external_gw) {
+			_LOGE ("Invalid IPv6 VPN gateway address received");
+			nm_vpn_connection_config_maybe_complete (self, FALSE);
+			return FALSE;
+		}
 	}
 
 	priv->mtu = 0;
@@ -2021,7 +2019,10 @@ nm_vpn_connection_activate (NMVpnConnection *self,
 	s_vpn = nm_connection_get_setting_vpn (_get_applied_connection (self));
 	g_return_if_fail (s_vpn);
 
-	service = nm_setting_vpn_get_service_type (s_vpn);
+	service = nm_vpn_plugin_info_lookup_property (plugin_info,
+	                                              NM_VPN_PLUGIN_INFO_KF_GROUP_CONNECTION,
+	                                              "service");
+	g_return_if_fail (service);
 
 	if (nm_vpn_plugin_info_supports_multiple (plugin_info)) {
 		const char *path;