From 5c1c577c315a83900f7eeb3e0c16bd9e98a571ff Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Wed, 28 Oct 2015 19:11:01 +0100 Subject: [PATCH] vpn-connections: set ifname for tunelled VPN configuration The configuration is going to be applied on the parent interface. If we didn't do this, an attempt to add a route would result in an assertion failure: nm-ip4-config.c:1475:nm_ip4_config_add_route: assertion failed: (priv->ifindex) --- src/vpn-manager/nm-vpn-connection.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index 37815644e6..cdda03452c 100644 --- a/src/vpn-manager/nm-vpn-connection.c +++ b/src/vpn-manager/nm-vpn-connection.c @@ -1359,6 +1359,7 @@ nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) const char *str; GVariant *v; gboolean b; + int ifindex; g_return_if_fail (dict && g_variant_is_of_type (dict, G_VARIANT_TYPE_VARDICT)); @@ -1386,7 +1387,13 @@ nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) priv->has_ip6 = FALSE; } - config = nm_ip4_config_new (priv->ip_ifindex); + if (priv->ip_ifindex > 0) { + ifindex = priv->ip_ifindex; + } else { + NMDevice *parent_dev = nm_active_connection_get_device (NM_ACTIVE_CONNECTION (self)); + ifindex = nm_device_get_ip_ifindex (parent_dev); + } + config = nm_ip4_config_new (ifindex); memset (&address, 0, sizeof (address)); address.plen = 24;