mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-30 06:10:11 +01:00
dhcp: don't add special route to DHCP server when having direct route
When the DHCP server address is not on the same subnet, we used to add a /32 route to the server IP address via the gateway. Do not add this route, if we already got a direct route from DHCP. https://bugzilla.gnome.org/show_bug.cgi?id=738590 Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
parent
ff145486d1
commit
3d7acbc427
1 changed files with 5 additions and 5 deletions
|
|
@ -451,13 +451,13 @@ nm_dhcp_utils_ip4_config_from_options (const char *iface,
|
|||
str = g_hash_table_lookup (options, "dhcp_server_identifier");
|
||||
if (str) {
|
||||
if (inet_pton (AF_INET, str, &tmp_addr) > 0) {
|
||||
NMPlatformIP4Route route;
|
||||
guint32 mask = nm_utils_ip4_prefix_to_netmask (address.plen);
|
||||
|
||||
nm_log_info (LOGD_DHCP4, " server identifier %s", str);
|
||||
if ((tmp_addr & mask) != (address.address & mask)) {
|
||||
/* DHCP server not on assigned subnet, route needed */
|
||||
memset (&route, 0, sizeof (route));
|
||||
if ( nm_utils_ip4_address_clear_host_address(tmp_addr, address.plen) != nm_utils_ip4_address_clear_host_address(address.address, address.plen)
|
||||
&& !nm_ip4_config_get_direct_route_for_host (ip4_config, tmp_addr)) {
|
||||
/* DHCP server not on assigned subnet and the no direct route was returned. Add route */
|
||||
NMPlatformIP4Route route = { 0 };
|
||||
|
||||
route.network = tmp_addr;
|
||||
route.plen = 32;
|
||||
/* this will be a device route if gwaddr is 0 */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue