summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-04-13 10:43:13 +0200
committerThomas Haller <thaller@redhat.com>2022-04-13 10:49:04 +0200
commit0c6d242dc0b67b6269657acf33bf9d1f0830f0b4 (patch)
tree6221144e54d209ddd6e848710bb7cec2d4891db4
parenta0988868ba7b4390790cab43cca5103f80a6a300 (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.c9
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,