diff options
author | Dan Winship <danw@gnome.org> | 2014-02-19 16:17:27 -0500 |
---|---|---|
committer | Dan Winship <danw@gnome.org> | 2014-03-26 10:39:37 -0400 |
commit | 8fbd56258a7aed92a1d22ce19559b3c06ac332ef (patch) | |
tree | c99b6823937a3a7214948b29bc6f21611f22979b | |
parent | bc43d532ee14ba71867a318561277c1d02c97154 (diff) | |
download | NetworkManager-8fbd56258a7aed92a1d22ce19559b3c06ac332ef.tar.gz |
core: handle IPv4 address labels
Handle address labels when applying or capturing an
NMSettingIP4Config.
-rw-r--r-- | src/nm-ip4-config.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 38227b082a..034d2e9127 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -30,7 +30,7 @@ #include "nm-dbus-glib-types.h" #include "nm-ip4-config-glue.h" #include "NetworkManagerUtils.h" - +#include "nm-util-private.h" G_DEFINE_TYPE (NMIP4Config, nm_ip4_config, G_TYPE_OBJECT) @@ -333,6 +333,7 @@ nm_ip4_config_merge_setting (NMIP4Config *config, NMSettingIP4Config *setting) /* Addresses */ for (i = 0; i < naddresses; i++) { NMIP4Address *s_addr = nm_setting_ip4_config_get_address (setting, i); + const char *label = NM_UTIL_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (setting, i)); NMPlatformIP4Address address; memset (&address, 0, sizeof (address)); @@ -341,6 +342,8 @@ nm_ip4_config_merge_setting (NMIP4Config *config, NMSettingIP4Config *setting) address.lifetime = NM_PLATFORM_LIFETIME_PERMANENT; address.preferred = NM_PLATFORM_LIFETIME_PERMANENT; address.source = NM_PLATFORM_SOURCE_USER; + if (label) + g_strlcpy (address.label, label, sizeof (address.label)); nm_ip4_config_add_address (config, &address); } @@ -418,7 +421,10 @@ nm_ip4_config_update_setting (const NMIP4Config *config, NMSettingIP4Config *set if (same_prefix (address->address, gateway, address->plen)) nm_ip4_address_set_gateway (s_addr, gateway); - nm_setting_ip4_config_add_address (setting, s_addr); + if (*address->label) + NM_UTIL_PRIVATE_CALL (nm_setting_ip4_config_add_address_with_label (setting, s_addr, address->label)); + else + nm_setting_ip4_config_add_address (setting, s_addr); nm_ip4_address_unref (s_addr); } |