diff options
| author | Michael Biebl <biebl@debian.org> | 2020-08-19 10:13:49 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-08-19 10:13:49 +0200 |
| commit | e7b44ef4c80907346ec7492a09c45277459924fc (patch) | |
| tree | b1388af193ca205f73336eca47e81815e43a61ca /src/vpn | |
| parent | 136d191f1c96dbae1489fed7c2565f5e1b1f8d40 (diff) | |
New upstream version 1.26.2 upstream/1.26.2
Diffstat (limited to 'src/vpn')
| -rw-r--r-- | src/vpn/nm-vpn-connection.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/vpn/nm-vpn-connection.c b/src/vpn/nm-vpn-connection.c index 6d995dc4..ff6b8e00 100644 --- a/src/vpn/nm-vpn-connection.c +++ b/src/vpn/nm-vpn-connection.c @@ -1447,6 +1447,20 @@ get_route_table (NMVpnConnection *self, return route_table ?: (fallback_main ? RT_TABLE_MAIN : 0); } +static gboolean +_is_device_vrf (NMVpnConnection *self) +{ + NMDevice *parent; + NMDevice *master; + + parent = nm_active_connection_get_device (NM_ACTIVE_CONNECTION (self)); + if (!parent) + return FALSE; + + master = nm_device_get_master (parent); + return master && nm_device_get_link_type (master) == NM_LINK_TYPE_VRF; +} + static void nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) { @@ -1646,6 +1660,7 @@ nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) nm_ip4_config_add_dependent_routes (config, route_table, nm_vpn_connection_get_ip4_route_metric (self), + _is_device_vrf (self), &priv->ip4_dev_route_blacklist); if (priv->ip4_config) { @@ -1840,9 +1855,7 @@ next: nm_ip6_config_add_route (config, &r, NULL); } - nm_ip6_config_add_dependent_routes (config, - route_table, - route_metric); + nm_ip6_config_add_dependent_routes (config, route_table, route_metric, _is_device_vrf (self)); if (priv->ip6_config) { nm_ip6_config_replace (priv->ip6_config, config, NULL); |