summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-03-23 13:28:15 +0100
committerThomas Haller <thaller@redhat.com>2022-03-28 18:27:37 +0200
commitb07bf1a8bbf98687ade29a575437dd728cffcea7 (patch)
tree9faf0ac3aafb411d4fed99ea8b329e7ed13e28da
parentcec126979558e716dd3bfda91f5ff73db051e230 (diff)
downloadNetworkManager-b07bf1a8bbf98687ade29a575437dd728cffcea7.tar.gz
keyfile: add write_handle_warn() helper
-rw-r--r--src/libnm-core-impl/nm-keyfile.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/libnm-core-impl/nm-keyfile.c b/src/libnm-core-impl/nm-keyfile.c
index e97d581ceb..08539beaad 100644
--- a/src/libnm-core-impl/nm-keyfile.c
+++ b/src/libnm-core-impl/nm-keyfile.c
@@ -115,6 +115,8 @@ _key_file_handler_data_init_write(NMKeyfileHandlerData *handler_data,
&info->error);
}
+/*****************************************************************************/
+
_nm_printf(5, 6) static void _read_handle_warn(KeyfileReaderInfo *info,
const char *kf_key,
const char *cur_property,
@@ -166,6 +168,61 @@ _nm_printf(5, 6) static void _read_handle_warn(KeyfileReaderInfo *info,
/*****************************************************************************/
+_nm_unused _nm_printf(6, 7) static void _write_handle_warn(KeyfileWriterInfo *info,
+ NMSetting *setting,
+ const char *kf_key,
+ const char *cur_property,
+ NMKeyfileWarnSeverity severity,
+ const char *fmt,
+ ...)
+{
+ NMKeyfileHandlerData handler_data;
+
+ _key_file_handler_data_init_write(&handler_data,
+ NM_KEYFILE_HANDLER_TYPE_WARN,
+ info,
+ nm_setting_get_name(setting),
+ cur_property,
+ setting,
+ kf_key);
+ handler_data.warn = (NMKeyfileHandlerDataWarn){
+ .severity = severity,
+ .message = NULL,
+ .fmt = fmt,
+ };
+
+ va_start(handler_data.warn.ap, fmt);
+
+ info->write_handler(info->connection,
+ info->keyfile,
+ NM_KEYFILE_HANDLER_TYPE_WARN,
+ &handler_data,
+ info->user_data);
+
+ va_end(handler_data.warn.ap);
+
+ g_free(handler_data.warn.message);
+}
+
+#define write_handle_warn(arg_info, arg_setting, arg_kf_key, arg_property_name, arg_severity, ...) \
+ ({ \
+ KeyfileWriterInfo *_info = (arg_info); \
+ \
+ nm_assert(!_info->error); \
+ \
+ if (_info->write_handler) { \
+ _write_handle_warn(_info, \
+ (arg_setting), \
+ (arg_kf_key), \
+ (arg_property_name), \
+ (arg_severity), \
+ __VA_ARGS__); \
+ } \
+ _info->error == NULL; \
+ })
+
+/*****************************************************************************/
+
static gboolean
_secret_flags_persist_secret(NMSettingSecretFlags flags)
{