diff options
author | Thomas Haller <thaller@redhat.com> | 2022-03-23 13:28:15 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2022-03-28 18:27:37 +0200 |
commit | b07bf1a8bbf98687ade29a575437dd728cffcea7 (patch) | |
tree | 9faf0ac3aafb411d4fed99ea8b329e7ed13e28da | |
parent | cec126979558e716dd3bfda91f5ff73db051e230 (diff) |
keyfile: add write_handle_warn() helper
-rw-r--r-- | src/libnm-core-impl/nm-keyfile.c | 57 |
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) { |