summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-08-26 12:51:58 +0200
committerThomas Haller <thaller@redhat.com>2019-08-26 13:05:50 +0200
commit942a960c13b1900adceb30b70ccf808b678d41ff (patch)
tree798169cf095fe974491348416082474f686d9cee
parent823010cda445af758aee90d1bda9404471209689 (diff)
downloadNetworkManager-942a960c13b1900adceb30b70ccf808b678d41ff.tar.gz
fixup! keyfile: let keyfile writer serialize setting with all default values
-rw-r--r--libnm-core/nm-keyfile.c38
-rw-r--r--libnm-core/tests/test-setting.c12
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)
: ""),