device: in nm_device_capture_initial_config() only update config once

Now that there is no difference between initial capturing of
the configuration, and a later update_ip_config() call during
a signal from platform, we only need to make sure that the
IP config instances are initialized at least once.

In case we are called multiple times, there is nothing to do.
This commit is contained in:
Thomas Haller 2018-03-09 19:16:05 +01:00
parent 454195c09d
commit 745d60c06e

View file

@ -263,6 +263,9 @@ typedef struct _NMDevicePrivate {
bool queued_ip4_config_pending:1;
bool queued_ip6_config_pending:1;
bool update_ip_config_completed_v4:1;
bool update_ip_config_completed_v6:1;
char * ip_iface;
int ip_ifindex;
NMDeviceType type;
@ -3626,6 +3629,9 @@ nm_device_realize_finish (NMDevice *self, const NMPlatformLink *plink)
if (plink)
device_recheck_slave_status (self, plink);
priv->update_ip_config_completed_v4 = FALSE;
priv->update_ip_config_completed_v6 = FALSE;
priv->real = TRUE;
_notify (self, PROP_REAL);
@ -11415,6 +11421,11 @@ update_ip_config (NMDevice *self, int addr_family)
nm_assert_addr_family (addr_family);
if (addr_family == AF_INET)
priv->update_ip_config_completed_v4 = TRUE;
else
priv->update_ip_config_completed_v6 = TRUE;
if (update_ext_ip_config (self, addr_family, TRUE)) {
if (addr_family == AF_INET) {
if (priv->ext_ip4_config)
@ -11429,8 +11440,12 @@ update_ip_config (NMDevice *self, int addr_family)
void
nm_device_capture_initial_config (NMDevice *self)
{
update_ip_config (self, AF_INET);
update_ip_config (self, AF_INET6);
NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
if (!priv->update_ip_config_completed_v4)
update_ip_config (self, AF_INET);
if (!priv->update_ip_config_completed_v6)
update_ip_config (self, AF_INET6);
}
static gboolean