ip4-config: properly handle gateway in nm_ip4_config_replace()

When @src didn't have a gateway and @dst did, the function left @dst's
gateway set to 0.0.0.0; fix this and unset the gateway in such case.

Fixes: 063677101a
(cherry picked from commit d1a776bff9)
This commit is contained in:
Beniamino Galvani 2015-11-26 09:08:46 +01:00
parent b776301662
commit d1be467d38

View file

@ -876,8 +876,8 @@ nm_ip4_config_intersect (NMIP4Config *dst, const NMIP4Config *src)
/**
* nm_ip4_config_replace:
* @dst: config from which to remove everything in @src
* @src: config to remove from @dst
* @dst: config to replace with @src content
* @src: source config to copy
* @relevant_changes: return whether there are changes to the
* destination object that are relevant. This is equal to
* nm_ip4_config_equal() showing any difference.
@ -922,7 +922,10 @@ nm_ip4_config_replace (NMIP4Config *dst, const NMIP4Config *src, gboolean *relev
/* default gateway */
if ( src_priv->gateway != dst_priv->gateway
|| src_priv->has_gateway != dst_priv->has_gateway) {
nm_ip4_config_set_gateway (dst, src_priv->gateway);
if (src_priv->has_gateway)
nm_ip4_config_set_gateway (dst, src_priv->gateway);
else
nm_ip4_config_unset_gateway (dst);
has_relevant_changes = TRUE;
}