X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flocale%2Flocaled.c;h=8d60d0ff133755478e4ed447b6709842e5210f35;hb=652212b0c2b60b9ef9b2e24eae82401f880fa21a;hp=f587b224a067c98a0ec1795c30206ea818f74394;hpb=da927ba997d68401563b927f92e6e40e021a8e5c;p=elogind.git diff --git a/src/locale/localed.c b/src/locale/localed.c index f587b224a..8d60d0ff1 100644 --- a/src/locale/localed.c +++ b/src/locale/localed.c @@ -610,10 +610,8 @@ static int vconsole_convert_to_x11(Context *c, sd_bus *bus) { int r; r = x11_write_data(c); - if (r < 0) { - log_error_errno(r, "Failed to set X11 keyboard layout: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to set X11 keyboard layout: %m"); log_info("Changed X11 keyboard layout to '%s' model '%s' variant '%s' options '%s'", strempty(c->x11_layout), @@ -1011,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) { @@ -1094,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("Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %s", - strempty(model), strempty(layout), strempty(variant), strempty(options), strerror(-r)); + 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 || @@ -1155,28 +1158,20 @@ static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { assert(_bus); r = sd_bus_default_system(&bus); - if (r < 0) { - log_error_errno(r, "Failed to get system bus connection: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to get system bus connection: %m"); r = sd_bus_add_object_vtable(bus, NULL, "/org/freedesktop/locale1", "org.freedesktop.locale1", locale_vtable, c); - if (r < 0) { - log_error_errno(r, "Failed to register object: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to register object: %m"); r = sd_bus_request_name(bus, "org.freedesktop.locale1", 0); - if (r < 0) { - log_error_errno(r, "Failed to register name: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to register name: %m"); r = sd_bus_attach_event(bus, event, 0); - if (r < 0) { - log_error_errno(r, "Failed to attach bus to event loop: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to attach bus to event loop: %m"); *_bus = bus; bus = NULL;