From c942a8c35b8c8aa00dd75d58ffe02db441de040c Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Sun, 28 Jun 2015 21:15:12 +0200 Subject: [PATCH] ipx-config: correct nm_ipx_config_merge() setting priorities ip[46]_config_merge_and_apply() do assume the settings that are merged later in override the previously set ones and not the other way around. Otherwise e.g. a gateway address from DHCP could override what's set in the connection. --- src/nm-ip4-config.c | 6 +++--- src/nm-ip6-config.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 1e24b2ec6..a3ef072b9 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -564,7 +564,7 @@ nm_ip4_config_merge (NMIP4Config *dst, const NMIP4Config *src) nm_ip4_config_add_nameserver (dst, nm_ip4_config_get_nameserver (src, i)); /* default gateway */ - if (!nm_ip4_config_get_gateway (dst)) + if (nm_ip4_config_get_gateway (src)) nm_ip4_config_set_gateway (dst, nm_ip4_config_get_gateway (src)); /* routes */ @@ -589,11 +589,11 @@ nm_ip4_config_merge (NMIP4Config *dst, const NMIP4Config *src) nm_ip4_config_add_dns_option (dst, nm_ip4_config_get_dns_option (src, i)); /* MSS */ - if (!nm_ip4_config_get_mss (dst)) + if (nm_ip4_config_get_mss (src)) nm_ip4_config_set_mss (dst, nm_ip4_config_get_mss (src)); /* MTU */ - if (!nm_ip4_config_get_mtu (dst)) + if (nm_ip4_config_get_mtu (src)) nm_ip4_config_set_mtu (dst, nm_ip4_config_get_mtu (src), nm_ip4_config_get_mtu_source (src)); diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 794b51c28..dcb318b7e 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -684,7 +684,7 @@ nm_ip6_config_merge (NMIP6Config *dst, const NMIP6Config *src) nm_ip6_config_add_nameserver (dst, nm_ip6_config_get_nameserver (src, i)); /* default gateway */ - if (!nm_ip6_config_get_gateway (dst)) + if (nm_ip6_config_get_gateway (src)) nm_ip6_config_set_gateway (dst, nm_ip6_config_get_gateway (src)); /* routes */ @@ -708,7 +708,7 @@ nm_ip6_config_merge (NMIP6Config *dst, const NMIP6Config *src) for (i = 0; i < nm_ip6_config_get_num_dns_options (src); i++) nm_ip6_config_add_dns_option (dst, nm_ip6_config_get_dns_option (src, i)); - if (!nm_ip6_config_get_mss (dst)) + if (nm_ip6_config_get_mss (src)) nm_ip6_config_set_mss (dst, nm_ip6_config_get_mss (src)); g_object_thaw_notify (G_OBJECT (dst));