summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Synacek <jsynacek@redhat.com>2014-12-03 14:56:56 +0100
committerLennart Poettering <lennart@poettering.net>2014-12-03 18:11:31 +0100
commit8433e33955f797510a3f323da9ffa08d12c374f4 (patch)
treeff5d885b21d060dedb9d2e95fab3952a625a6577
parent04a919394069cf024559f78eb46692a3739641eb (diff)
localed: log xkbcommon errors
The errors are prefixed with "libxkbcommon" to provide some context, because they are quite confusing without it. With the prefix, we at least know where they come from.
-rw-r--r--src/locale/localed.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/locale/localed.c b/src/locale/localed.c
index 654b291928..8d60d0ff13 100644
--- a/src/locale/localed.c
+++ b/src/locale/localed.c
@@ -1009,7 +1009,10 @@ static int method_set_vc_keyboard(sd_bus *bus, sd_bus_message *m, void *userdata
#ifdef HAVE_XKBCOMMON
static void log_xkb(struct xkb_context *ctx, enum xkb_log_level lvl, const char *format, va_list args) {
- /* suppress xkb messages for now */
+ const char *fmt;
+
+ fmt = strappenda("libxkbcommon: ", format);
+ log_internalv(LOG_DEBUG, 0, __FILE__, __LINE__, __func__, fmt, args);
}
static int verify_xkb_rmlvo(const char *model, const char *layout, const char *variant, const char *options) {
@@ -1092,9 +1095,11 @@ static int method_set_x11_keyboard(sd_bus *bus, sd_bus_message *m, void *userdat
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
r = verify_xkb_rmlvo(model, layout, variant, options);
- if (r < 0)
- log_warning_errno(r, "Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %m",
- strempty(model), strempty(layout), strempty(variant), strempty(options));
+ if (r < 0) {
+ log_error_errno(r, "Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %m",
+ strempty(model), strempty(layout), strempty(variant), strempty(options));
+ return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Cannot compile XKB keymap, refusing");
+ }
if (free_and_strdup(&c->x11_layout, layout) < 0 ||
free_and_strdup(&c->x11_model, model) < 0 ||