diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2015-10-26 18:21:18 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2015-11-02 20:27:36 +0100 |
commit | e9dfdfe9fe586f3fcfaebbf8d6a786b6f6bec03a (patch) | |
tree | 0cb37794b4532129f13dc529c4adf92a7a818366 | |
parent | e603c86926ce48a7dd53b892fe85d506e6322378 (diff) | |
download | NetworkManager-e9dfdfe9fe586f3fcfaebbf8d6a786b6f6bec03a.tar.gz |
libnm-core: default to ip6.addr-gen-mode=stable-privacylr/stable-privacy-rfc7217
Take a missing value in keyfile/ifcfg-rh as EUI-64 to keep the compatibility
with the old conneciton. Nevertheless, the new connections should default to
the RFC7217 addresses.
-rw-r--r-- | libnm-core/nm-keyfile-reader.c | 15 | ||||
-rw-r--r-- | libnm-core/nm-keyfile-writer.c | 3 | ||||
-rw-r--r-- | libnm-core/nm-setting-ip6-config.c | 4 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/reader.c | 5 |
4 files changed, 17 insertions, 10 deletions
diff --git a/libnm-core/nm-keyfile-reader.c b/libnm-core/nm-keyfile-reader.c index d38d37232b..43e2618435 100644 --- a/libnm-core/nm-keyfile-reader.c +++ b/libnm-core/nm-keyfile-reader.c @@ -562,20 +562,21 @@ ip6_dns_parser (KeyfileReaderInfo *info, NMSetting *setting, const char *key) static void ip6_addr_gen_mode_parser (KeyfileReaderInfo *info, NMSetting *setting, const char *key) { - NMSettingIP6ConfigAddrGenMode addr_gen_mode = NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64; + NMSettingIP6ConfigAddrGenMode addr_gen_mode; const char *setting_name = nm_setting_get_name (setting); - char *s; + gs_free char *s = NULL; s = nm_keyfile_plugin_kf_get_string (info->keyfile, setting_name, key, NULL); if (s) { if (!nm_utils_enum_from_str (nm_setting_ip6_config_addr_gen_mode_get_type (), s, - (int *) &addr_gen_mode, NULL)) { + (int *) &addr_gen_mode, NULL)) { handle_warn (info, key, NM_KEYFILE_WARN_SEVERITY_WARN, - _("invalid option '%s', use one of [%s]"), - s, "eui64,stable-privacy"); + _("invalid option '%s', use one of [%s]"), + s, "eui64,stable-privacy"); + return; } - g_free (s); - } + } else + addr_gen_mode = NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64; g_object_set (G_OBJECT (setting), key, (gint) addr_gen_mode, NULL); } diff --git a/libnm-core/nm-keyfile-writer.c b/libnm-core/nm-keyfile-writer.c index c62138b484..5afee4302d 100644 --- a/libnm-core/nm-keyfile-writer.c +++ b/libnm-core/nm-keyfile-writer.c @@ -608,7 +608,8 @@ static KeyWriter key_writers[] = { static gboolean can_omit_default_value (NMSetting *setting, const char *property) { - if (NM_IS_SETTING_VLAN (setting) && !strcmp (property, NM_SETTING_VLAN_FLAGS)) + if ( (NM_IS_SETTING_VLAN (setting) && !strcmp (property, NM_SETTING_VLAN_FLAGS)) + || (NM_IS_SETTING_IP6_CONFIG (setting) && !strcmp (property, NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE))) return FALSE; return TRUE; diff --git a/libnm-core/nm-setting-ip6-config.c b/libnm-core/nm-setting-ip6-config.c index 104c922cea..bc516d6e70 100644 --- a/libnm-core/nm-setting-ip6-config.c +++ b/libnm-core/nm-setting-ip6-config.c @@ -115,7 +115,7 @@ NMSettingIP6ConfigAddrGenMode nm_setting_ip6_config_get_addr_gen_mode (NMSettingIP6Config *setting) { g_return_val_if_fail (NM_IS_SETTING_IP6_CONFIG (setting), - NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64); + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY); return NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->addr_gen_mode; } @@ -618,7 +618,7 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *ip6_class) (object_class, PROP_ADDR_GEN_MODE, g_param_spec_int (NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, "", "", G_MININT, G_MAXINT, - NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c index 518b90a897..6ca9b92b09 100644 --- a/src/settings/plugins/ifcfg-rh/reader.c +++ b/src/settings/plugins/ifcfg-rh/reader.c @@ -1509,6 +1509,11 @@ make_ip6_setting (shvarFile *ifcfg, else PARSE_WARNING ("Invalid IPV6_ADDR_GEN_MODE"); g_free (tmp); + } else { + g_object_set (s_ip6, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, + NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, + NULL); } /* DNS servers |