diff options
| author | Sebastien Bacher <seb128@ubuntu.com> | 2020-08-31 11:11:14 +0200 |
|---|---|---|
| committer | Sebastien Bacher <seb128@ubuntu.com> | 2020-08-31 11:11:14 +0200 |
| commit | bbb262bfd5200313834db8fb36b7fb20aa0913b5 (patch) | |
| tree | 70fad3f1f44bb7299dd1f5f376a6b8483a023136 /src/vpn/nm-vpn-connection.c | |
| parent | 6e17a2e7ad9453c0afe34dab0e6768ad8ee447c2 (diff) | |
| parent | 9d722f3d3492e31c0b3e4bcba603ffd65309c621 (diff) | |
Merge remote-tracking branch 'salsa/debian/master' into ubuntu/master
Diffstat (limited to 'src/vpn/nm-vpn-connection.c')
| -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); |