diff --git a/libnm-core/tests/test-keyfile.c b/libnm-core/tests/test-keyfile.c index 47a2757161..23149b618d 100644 --- a/libnm-core/tests/test-keyfile.c +++ b/libnm-core/tests/test-keyfile.c @@ -143,7 +143,7 @@ _nm_keyfile_write (NMConnection *connection, g_assert (NM_IS_CONNECTION (connection)); - kf = nm_keyfile_write (connection, handler, user_data, &error); + kf = nm_keyfile_write (connection, NM_KEYFILE_HANDLER_FLAGS_NONE, handler, user_data, &error); g_assert_no_error (error); g_assert (kf); return kf; @@ -167,7 +167,7 @@ _nm_keyfile_read (GKeyFile *keyfile, base_dir = g_path_get_dirname (keyfile_name); filename = g_path_get_basename (keyfile_name); - con = nm_keyfile_read (keyfile, base_dir, read_handler, read_data, &error); + con = nm_keyfile_read (keyfile, base_dir, NM_KEYFILE_HANDLER_FLAGS_NONE, read_handler, read_data, &error); g_assert_no_error (error); g_assert (NM_IS_CONNECTION (con)); diff --git a/libnm-core/tests/test-setting.c b/libnm-core/tests/test-setting.c index c7d54cbbcf..ae37ec7bbd 100644 --- a/libnm-core/tests/test-setting.c +++ b/libnm-core/tests/test-setting.c @@ -1593,11 +1593,12 @@ test_ethtool_features (void) nmtst_assert_connection_equals (con, FALSE, con2, FALSE); - keyfile = nm_keyfile_write (con, NULL, NULL, &error); + keyfile = nm_keyfile_write (con, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); nmtst_assert_success (keyfile, error); con3 = nm_keyfile_read (keyfile, "/ignored/current/working/directory/for/loading/relative/paths", + NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); @@ -1662,11 +1663,12 @@ test_ethtool_coalesce (void) nmtst_assert_connection_equals (con, FALSE, con2, FALSE); - keyfile = nm_keyfile_write (con, NULL, NULL, &error); + keyfile = nm_keyfile_write (con, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); nmtst_assert_success (keyfile, error); con3 = nm_keyfile_read (keyfile, "/ignored/current/working/directory/for/loading/relative/paths", + NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); @@ -1746,11 +1748,12 @@ test_ethtool_ring (void) nmtst_assert_connection_equals (con, FALSE, con2, FALSE); - keyfile = nm_keyfile_write (con, NULL, NULL, &error); + keyfile = nm_keyfile_write (con, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); nmtst_assert_success (keyfile, error); con3 = nm_keyfile_read (keyfile, "/ignored/current/working/directory/for/loading/relative/paths", + NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); @@ -3266,7 +3269,7 @@ test_roundtrip_conversion (gconstpointer test_data) { gs_unref_keyfile GKeyFile *kf = NULL; - kf = nm_keyfile_write (con, NULL, NULL, &error); + kf = nm_keyfile_write (con, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); nmtst_assert_success (kf, error); /* the first kf_data_arr entry is special: it must be what the writer would @@ -3361,7 +3364,7 @@ test_roundtrip_conversion (gconstpointer test_data) { gs_unref_keyfile GKeyFile *kf = NULL; - kf = nm_keyfile_write (con2, NULL, NULL, &error); + kf = nm_keyfile_write (con2, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); nmtst_assert_success (kf, error); nmtst_keyfile_assert_data (kf, kf_data_arr->pdata[0], -1); } @@ -3665,7 +3668,7 @@ test_empty_setting (void) nmtst_assert_connection_verifies_without_normalization (con); - kf = nm_keyfile_write (con, NULL, NULL, &error); + kf = nm_keyfile_write (con, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); nmtst_assert_success (kf, error); g_assert (g_key_file_has_group (kf, "gsm")); @@ -3673,6 +3676,7 @@ test_empty_setting (void) con2 = nm_keyfile_read (kf, "/ignored/current/working/directory/for/loading/relative/paths", + NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); diff --git a/shared/nm-keyfile/nm-keyfile-internal.h b/shared/nm-keyfile/nm-keyfile-internal.h index be0f800a52..dc4082cf52 100644 --- a/shared/nm-keyfile/nm-keyfile-internal.h +++ b/shared/nm-keyfile/nm-keyfile-internal.h @@ -31,6 +31,10 @@ char *nm_keyfile_detect_unqualified_path_scheme (const char *base_dir, gboolean consider_exists, gboolean *out_exists); +typedef enum { /*< flags >*/ + NM_KEYFILE_HANDLER_FLAGS_NONE = 0, +} NMKeyfileHandlerFlags; + typedef enum { NM_KEYFILE_HANDLER_TYPE_WARN = 1, NM_KEYFILE_HANDLER_TYPE_WRITE_CERT = 2, @@ -63,6 +67,7 @@ typedef enum { NMConnection *nm_keyfile_read (GKeyFile *keyfile, const char *base_dir, + NMKeyfileHandlerFlags handler_flags, NMKeyfileReadHandler handler, void *user_data, GError **error); @@ -105,6 +110,7 @@ typedef gboolean (*NMKeyfileWriteHandler) (NMConnection *connection, void *user_data); GKeyFile *nm_keyfile_write (NMConnection *connection, + NMKeyfileHandlerFlags handler_flags, NMKeyfileWriteHandler handler, void *user_data, GError **error); diff --git a/shared/nm-keyfile/nm-keyfile.c b/shared/nm-keyfile/nm-keyfile.c index 3b198d1ae3..77af2b6492 100644 --- a/shared/nm-keyfile/nm-keyfile.c +++ b/shared/nm-keyfile/nm-keyfile.c @@ -3758,6 +3758,7 @@ nm_keyfile_read_ensure_uuid (NMConnection *connection, * @base_dir: when reading certificates from files with relative name, * the relative path is made absolute using @base_dir. This must * be an absolute path. + * @handler_flags: the #NMKeyfileHandlerFlags. * @handler: read handler * @user_data: user data for read handler * @error: error @@ -3770,6 +3771,7 @@ nm_keyfile_read_ensure_uuid (NMConnection *connection, NMConnection * nm_keyfile_read (GKeyFile *keyfile, const char *base_dir, + NMKeyfileHandlerFlags handler_flags, NMKeyfileReadHandler handler, void *user_data, GError **error) @@ -3785,6 +3787,7 @@ nm_keyfile_read (GKeyFile *keyfile, g_return_val_if_fail (keyfile, NULL); g_return_val_if_fail (!error || !*error, NULL); g_return_val_if_fail (base_dir && base_dir[0] == '/', NULL); + g_return_val_if_fail (handler_flags == NM_KEYFILE_HANDLER_FLAGS_NONE, NULL); connection = nm_simple_connection_new (); @@ -4085,6 +4088,7 @@ _write_setting_wireguard (NMSetting *setting, KeyfileWriterInfo *info) GKeyFile * nm_keyfile_write (NMConnection *connection, + NMKeyfileHandlerFlags handler_flags, NMKeyfileWriteHandler handler, void *user_data, GError **error) @@ -4096,6 +4100,7 @@ nm_keyfile_write (NMConnection *connection, g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); g_return_val_if_fail (!error || !*error, NULL); + g_return_val_if_fail (handler_flags == NM_KEYFILE_HANDLER_FLAGS_NONE, NULL); if (!nm_connection_verify (connection, error)) return NULL; diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h index 96e361358f..15362da00d 100644 --- a/shared/nm-utils/nm-test-utils.h +++ b/shared/nm-utils/nm-test-utils.h @@ -1924,8 +1924,8 @@ nmtst_assert_connection_equals (NMConnection *a, gboolean normalize_a, NMConnect gs_unref_keyfile GKeyFile *kf_a = NULL, *kf_b = NULL; gs_free char *str_a = NULL, *str_b = NULL; - kf_a = nm_keyfile_write (a, NULL, NULL, NULL); - kf_b = nm_keyfile_write (b, NULL, NULL, NULL); + kf_a = nm_keyfile_write (a, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, NULL); + kf_b = nm_keyfile_write (b, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, NULL); if (kf_a) str_a = g_key_file_to_data (kf_a, NULL, NULL); @@ -2262,7 +2262,7 @@ nmtst_create_connection_from_keyfile (const char *keyfile_str, const char *full_ success = g_key_file_load_from_data (keyfile, keyfile_str, strlen (keyfile_str), G_KEY_FILE_NONE, &error); nmtst_assert_success (success, error); - con = nm_keyfile_read (keyfile, base_dir, NULL, NULL, &error); + con = nm_keyfile_read (keyfile, base_dir, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); nmtst_assert_success (NM_IS_CONNECTION (con), error); nm_keyfile_read_ensure_id (con, filename); diff --git a/src/initrd/nm-initrd-generator.c b/src/initrd/nm-initrd-generator.c index a04ffb7d4f..ac81dde03c 100644 --- a/src/initrd/nm-initrd-generator.c +++ b/src/initrd/nm-initrd-generator.c @@ -33,7 +33,7 @@ output_conn (gpointer key, gpointer value, gpointer user_data) if (!nm_connection_normalize (connection, NULL, NULL, &error)) goto err_out; - file = nm_keyfile_write (connection, NULL, NULL, &error); + file = nm_keyfile_write (connection, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, &error); if (file == NULL) goto err_out; diff --git a/src/settings/plugins/keyfile/nms-keyfile-reader.c b/src/settings/plugins/keyfile/nms-keyfile-reader.c index 2459be483f..ceda7f3f17 100644 --- a/src/settings/plugins/keyfile/nms-keyfile-reader.c +++ b/src/settings/plugins/keyfile/nms-keyfile-reader.c @@ -128,7 +128,7 @@ nms_keyfile_reader_from_keyfile (GKeyFile *key_file, filename = &s[1]; } - connection = nm_keyfile_read (key_file, base_dir, _handler_read, &read_info, error); + connection = nm_keyfile_read (key_file, base_dir, NM_KEYFILE_HANDLER_FLAGS_NONE, _handler_read, &read_info, error); if (!connection) return NULL; diff --git a/src/settings/plugins/keyfile/nms-keyfile-writer.c b/src/settings/plugins/keyfile/nms-keyfile-writer.c index ac8ed6706b..a1bd661413 100644 --- a/src/settings/plugins/keyfile/nms-keyfile-writer.c +++ b/src/settings/plugins/keyfile/nms-keyfile-writer.c @@ -214,7 +214,7 @@ _internal_write_connection (NMConnection *connection, info.keyfile_dir = keyfile_dir; - kf_file = nm_keyfile_write (connection, _handler_write, &info, error); + kf_file = nm_keyfile_write (connection, NM_KEYFILE_HANDLER_FLAGS_NONE, _handler_write, &info, error); if (!kf_file) return FALSE;