mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-07-23 03:04:18 +00:00
keyfile: add support for addr-gen-mode property
This commit is contained in:
parent
60811b4809
commit
f70c8f3d29
|
@ -559,6 +559,27 @@ ip6_dns_parser (KeyfileReaderInfo *info, NMSetting *setting, const char *key)
|
|||
g_strfreev (list);
|
||||
}
|
||||
|
||||
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;
|
||||
const char *setting_name = nm_setting_get_name (setting);
|
||||
char *s;
|
||||
|
||||
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)) {
|
||||
handle_warn (info, key, NM_KEYFILE_WARN_SEVERITY_WARN,
|
||||
_("invalid option '%s', use one of [%s]"),
|
||||
s, "eui64,stable-privacy");
|
||||
}
|
||||
g_free (s);
|
||||
}
|
||||
|
||||
g_object_set (G_OBJECT (setting), key, (gint) addr_gen_mode, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
mac_address_parser (KeyfileReaderInfo *info, NMSetting *setting, const char *key, gsize enforce_length)
|
||||
{
|
||||
|
@ -1177,6 +1198,10 @@ static KeyParser key_parsers[] = {
|
|||
NM_SETTING_IP_CONFIG_DNS,
|
||||
FALSE,
|
||||
ip6_dns_parser },
|
||||
{ NM_SETTING_IP6_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE,
|
||||
FALSE,
|
||||
ip6_addr_gen_mode_parser },
|
||||
{ NM_SETTING_WIRED_SETTING_NAME,
|
||||
NM_SETTING_WIRED_MAC_ADDRESS,
|
||||
TRUE,
|
||||
|
|
|
@ -102,6 +102,24 @@ dns_writer (KeyfileWriterInfo *info,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ip6_addr_gen_mode_writer (KeyfileWriterInfo *info,
|
||||
NMSetting *setting,
|
||||
const char *key,
|
||||
const GValue *value)
|
||||
{
|
||||
NMSettingIP6ConfigAddrGenMode addr_gen_mode;
|
||||
const char *str;
|
||||
|
||||
addr_gen_mode = (NMSettingIP6ConfigAddrGenMode) g_value_get_int (value);
|
||||
str = nm_utils_enum_to_str (nm_setting_ip6_config_addr_gen_mode_get_type (),
|
||||
addr_gen_mode);
|
||||
nm_keyfile_plugin_kf_set_string (info->keyfile,
|
||||
nm_setting_get_name (setting),
|
||||
key,
|
||||
str);
|
||||
}
|
||||
|
||||
static void
|
||||
write_ip_values (GKeyFile *file,
|
||||
const char *setting_name,
|
||||
|
@ -557,6 +575,9 @@ static KeyWriter key_writers[] = {
|
|||
{ NM_SETTING_IP6_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP_CONFIG_DNS,
|
||||
dns_writer },
|
||||
{ NM_SETTING_IP6_CONFIG_SETTING_NAME,
|
||||
NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE,
|
||||
ip6_addr_gen_mode_writer },
|
||||
{ NM_SETTING_WIRELESS_SETTING_NAME,
|
||||
NM_SETTING_WIRELESS_SSID,
|
||||
ssid_writer },
|
||||
|
|
Loading…
Reference in a new issue