diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2023-02-02 02:53:35 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2023-03-25 15:36:48 +0900 |
commit | 0327d5b20f9e845dc310cb9e87207ac982c8bbd0 (patch) | |
tree | ff0fbcd62adbdd0641564972ed2c7efdd2a45695 /src/locale/localed.c | |
parent | d45cbc071144c5003d2dc35d388790dacad6e6f0 (diff) | |
download | systemd-0327d5b20f9e845dc310cb9e87207ac982c8bbd0.tar.gz |
locale: introduce x11_context_verify()
No functional change, preparation for later commits.
Diffstat (limited to 'src/locale/localed.c')
-rw-r--r-- | src/locale/localed.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/locale/localed.c b/src/locale/localed.c index 587e072c6b..e08f8ac6ef 100644 --- a/src/locale/localed.c +++ b/src/locale/localed.c @@ -26,7 +26,6 @@ #include "string-util.h" #include "strv.h" #include "user-util.h" -#include "xkbcommon-util.h" static int reload_system_manager(sd_bus *bus) { _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL; @@ -491,18 +490,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err x11_context_empty_to_null(&in); - if (!x11_context_is_safe(&in)) - return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Received invalid keyboard data"); - - r = verify_xkb_rmlvo(in.model, in.layout, in.variant, in.options); - if (r == -EOPNOTSUPP) - log_notice_errno(r, "Cannot verify if new keymap is correct, libxkbcommon.so unavailable."); - else if (r < 0) { - log_error_errno(r, "Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %m", - strempty(in.model), strempty(in.layout), strempty(in.variant), strempty(in.options)); - return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, - "Specified keymap cannot be compiled, refusing as invalid."); - } + r = x11_context_verify_and_warn(&in, LOG_ERR, error); + if (r < 0) + return r; r = vconsole_read_data(c, m); if (r < 0) { |