diff options
author | Thomas Haller <thaller@redhat.com> | 2019-08-26 12:51:58 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-08-26 13:05:50 +0200 |
commit | 942a960c13b1900adceb30b70ccf808b678d41ff (patch) | |
tree | 798169cf095fe974491348416082474f686d9cee | |
parent | 823010cda445af758aee90d1bda9404471209689 (diff) | |
download | NetworkManager-942a960c13b1900adceb30b70ccf808b678d41ff.tar.gz |
fixup! keyfile: let keyfile writer serialize setting with all default values
-rw-r--r-- | libnm-core/nm-keyfile.c | 38 | ||||
-rw-r--r-- | libnm-core/tests/test-setting.c | 12 |
2 files changed, 18 insertions, 32 deletions
diff --git a/libnm-core/nm-keyfile.c b/libnm-core/nm-keyfile.c index f6342d105e..f9cd9a41df 100644 --- a/libnm-core/nm-keyfile.c +++ b/libnm-core/nm-keyfile.c @@ -2541,7 +2541,6 @@ struct _ParseInfoProperty { typedef struct { const ParseInfoProperty*const*properties; - bool writer_no_empty_group:1; } ParseInfoSetting; #define PARSE_INFO_SETTING(setting_type, ...) \ @@ -2905,9 +2904,6 @@ static const ParseInfoSetting *const parse_infos[_NM_META_SETTING_TYPE_NUM] = { ), ), ), - PARSE_INFO_SETTING (NM_META_SETTING_TYPE_WIREGUARD, - .writer_no_empty_group = TRUE, - ), }; static void @@ -3873,7 +3869,7 @@ nm_keyfile_write (NMConnection *connection, const NMSettInfoSetting *sett_info; NMSetting *setting = settings[i]; const char *setting_name; - const ParseInfoSetting *pis; + const char *group_name; sett_info = _nm_setting_class_get_sett_info (NM_SETTING_GET_CLASS (setting)); @@ -3926,26 +3922,20 @@ nm_keyfile_write (NMConnection *connection, goto out_with_info_error; } - _parse_info_find (setting, NULL, NULL, &pis, NULL); - if ( !pis - || !pis->writer_no_empty_group) { - const char *group_name; - - setting_name = sett_info->setting_class->setting_info->setting_name; + setting_name = sett_info->setting_class->setting_info->setting_name; - group_name = nm_keyfile_plugin_get_alias_for_setting_name (setting_name); - if ( ( group_name - && g_key_file_has_group (info.keyfile, group_name)) - || g_key_file_has_group (info.keyfile, setting_name)) { - /* we have a section for the setting. Nothing to do. */ - } else { - /* ensure the group is present. There is no API for that, so add and remove - * a dummy key. */ - if (!group_name) - group_name = setting_name; - g_key_file_set_value (info.keyfile, group_name, ".X", "1"); - g_key_file_remove_key (info.keyfile, group_name, ".X", NULL); - } + group_name = nm_keyfile_plugin_get_alias_for_setting_name (setting_name); + if ( ( group_name + && g_key_file_has_group (info.keyfile, group_name)) + || g_key_file_has_group (info.keyfile, setting_name)) { + /* we have a section for the setting. Nothing to do. */ + } else { + /* ensure the group is present. There is no API for that, so add and remove + * a dummy key. */ + if (!group_name) + group_name = setting_name; + g_key_file_set_value (info.keyfile, group_name, ".X", "1"); + g_key_file_remove_key (info.keyfile, group_name, ".X", NULL); } nm_assert (!info.error); diff --git a/libnm-core/tests/test-setting.c b/libnm-core/tests/test-setting.c index 13c77684da..b24bb1e37f 100644 --- a/libnm-core/tests/test-setting.c +++ b/libnm-core/tests/test-setting.c @@ -2724,6 +2724,8 @@ test_roundtrip_conversion (gconstpointer test_data) "interface-name=%s\n" "permissions=\n" "\n" + "[wireguard]\n" + "\n" "[ipv4]\n" "dns-search=\n" "method=disabled\n" @@ -2774,7 +2776,8 @@ test_roundtrip_conversion (gconstpointer test_data) "type=wireguard\n" "interface-name=%s\n" "permissions=\n" - "%s" /* [wireguard] */ + "\n" + "[wireguard]\n" "%s" /* fwmark */ "%s" /* listen-port */ "%s" /* private-key-flags */ @@ -2795,13 +2798,6 @@ test_roundtrip_conversion (gconstpointer test_data) ID, UUID, INTERFACE_NAME, - ( ( (WG_FWMARK != 0) - || (WG_LISTEN_PORT != 0) - || (WG_PRIVATE_KEY_FLAGS != NM_SETTING_SECRET_FLAG_NONE) - || ( WG_PRIVATE_KEY - && WG_PRIVATE_KEY_FLAGS == NM_SETTING_SECRET_FLAG_NONE)) - ? "\n[wireguard]\n" - : ""), ( (WG_FWMARK != 0) ? nm_sprintf_bufa (100, "fwmark=%u\n", WG_FWMARK) : ""), |