diff options
author | Thomas Haller <thaller@redhat.com> | 2022-04-13 10:43:13 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2022-04-13 10:49:04 +0200 |
commit | 0c6d242dc0b67b6269657acf33bf9d1f0830f0b4 (patch) | |
tree | 6221144e54d209ddd6e848710bb7cec2d4891db4 | |
parent | a0988868ba7b4390790cab43cca5103f80a6a300 (diff) |
dhcp/dhclient: fix setting "src" attribute for certain routes
Fixes: 2dc7a3d9f913 ('dhcp: set "src" for DHCPv4 routes')
(cherry picked from commit 197e73ac7c53556b32ff048c9720907be3217487)
-rw-r--r-- | src/core/dhcp/nm-dhcp-utils.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/dhcp/nm-dhcp-utils.c b/src/core/dhcp/nm-dhcp-utils.c index a5916de839..858516d0ea 100644 --- a/src/core/dhcp/nm-dhcp-utils.c +++ b/src/core/dhcp/nm-dhcp-utils.c @@ -277,7 +277,10 @@ ip4_process_classless_routes(const char *iface, } static void -process_classful_routes(const char *iface, GHashTable *options, NML3ConfigData *l3cd) +process_classful_routes(const char *iface, + GHashTable *options, + NML3ConfigData *l3cd, + in_addr_t address) { gs_free const char **searches = NULL; const char **s; @@ -325,6 +328,7 @@ process_classful_routes(const char *iface, GHashTable *options, NML3ConfigData * route.plen = 32; } route.gateway = rt_route; + route.pref_src = address; route.rt_source = NM_IP_CONFIG_SOURCE_DHCP; route.table_any = TRUE; route.table_coerced = 0; @@ -427,7 +431,7 @@ nm_dhcp_utils_ip4_config_from_options(NMDedupMultiIndex *multi_idx, * the 'static_routes' option. */ if (!ip4_process_classless_routes(iface, options, l3cd, address.address, &gateway)) - process_classful_routes(iface, options, l3cd); + process_classful_routes(iface, options, l3cd, address.address); if (gateway) { _LOG2I(LOGD_DHCP4, iface, " gateway %s", _nm_utils_inet4_ntop(gateway, sbuf)); @@ -457,6 +461,7 @@ nm_dhcp_utils_ip4_config_from_options(NMDedupMultiIndex *multi_idx, const NMPlatformIP4Route r = { .rt_source = NM_IP_CONFIG_SOURCE_DHCP, .gateway = gateway, + .pref_src = address.address, .table_any = TRUE, .table_coerced = 0, .metric_any = TRUE, |