From d40539acaf29f8a3104120968c397246798dfdd0 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Thu, 14 Apr 2016 12:21:09 +0200 Subject: [PATCH] vpn-connection: don't fail the connection if there's no VPN gateway The stongswan charon_nm plugin doesn't send a gateway. The logic was accidentally broken with GDBus port. Fixes: 231b0390a5a3620025abcfdfcac94de2ecbc065a (cherry picked from commit dd0e070844de00e741e1cb6bee0be5d28090b076) --- src/vpn-manager/nm-vpn-connection.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index 2945ad34ad..da7851b3ed 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;