r = sd_bus_call(bus, m, 0, &error, NULL);
if (r < 0)
- log_error_errno(-r, "Failed to update the manager environment: %m");
+ log_error_errno(r, "Failed to update the manager environment: %m");
return 0;
}
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),
if (modified) {
r = vconsole_write_data(c);
if (r < 0)
- log_error_errno(-r, "Failed to set virtual console keymap: %m");
+ log_error_errno(r, "Failed to set virtual console keymap: %m");
log_info("Changed virtual console keymap to '%s' toggle '%s'",
strempty(c->vc_keymap), strempty(c->vc_keymap_toggle));
r = locale_write_data(c, &settings);
if (r < 0) {
- log_error_errno(-r, "Failed to set locale: %m");
+ log_error_errno(r, "Failed to set locale: %m");
return sd_bus_error_set_errnof(error, r, "Failed to set locale: %s", strerror(-r));
}
if (!streq_ptr(keymap, c->vc_keymap) ||
!streq_ptr(keymap_toggle, c->vc_keymap_toggle)) {
- if ((keymap && (!filename_is_safe(keymap) || !string_is_safe(keymap))) ||
- (keymap_toggle && (!filename_is_safe(keymap_toggle) || !string_is_safe(keymap_toggle))))
+ if ((keymap && (!filename_is_valid(keymap) || !string_is_safe(keymap))) ||
+ (keymap_toggle && (!filename_is_valid(keymap_toggle) || !string_is_safe(keymap_toggle))))
return sd_bus_error_set_errnof(error, -EINVAL, "Received invalid keymap data");
r = bus_verify_polkit_async(m, CAP_SYS_ADMIN, "org.freedesktop.locale1.set-keyboard", interactive, &c->polkit_registry, error);
r = vconsole_write_data(c);
if (r < 0) {
- log_error_errno(-r, "Failed to set virtual console keymap: %m");
+ log_error_errno(r, "Failed to set virtual console keymap: %m");
return sd_bus_error_set_errnof(error, r, "Failed to set virtual console keymap: %s", strerror(-r));
}
r = vconsole_reload(bus);
if (r < 0)
- log_error_errno(-r, "Failed to request keymap reload: %m");
+ log_error_errno(r, "Failed to request keymap reload: %m");
sd_bus_emit_properties_changed(bus,
"/org/freedesktop/locale1",
if (convert) {
r = vconsole_convert_to_x11(c, bus);
if (r < 0)
- log_error_errno(-r, "Failed to convert keymap data: %m");
+ log_error_errno(r, "Failed to convert keymap data: %m");
}
}
#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) {
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 ||
r = x11_write_data(c);
if (r < 0) {
- log_error_errno(-r, "Failed to set X11 keyboard layout: %m");
+ log_error_errno(r, "Failed to set X11 keyboard layout: %m");
return sd_bus_error_set_errnof(error, r, "Failed to set X11 keyboard layout: %s", strerror(-r));
}
if (convert) {
r = x11_convert_to_vconsole(c, bus);
if (r < 0)
- log_error_errno(-r, "Failed to convert keymap data: %m");
+ log_error_errno(r, "Failed to convert keymap data: %m");
}
}
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;
r = sd_event_default(&event);
if (r < 0) {
- log_error_errno(-r, "Failed to allocate event loop: %m");
+ log_error_errno(r, "Failed to allocate event loop: %m");
goto finish;
}
r = context_read_data(&context);
if (r < 0) {
- log_error_errno(-r, "Failed to read locale data: %m");
+ log_error_errno(r, "Failed to read locale data: %m");
goto finish;
}
r = bus_event_loop_with_idle(event, bus, "org.freedesktop.locale1", DEFAULT_EXIT_USEC, NULL, NULL);
if (r < 0) {
- log_error_errno(-r, "Failed to run event loop: %m");
+ log_error_errno(r, "Failed to run event loop: %m");
goto finish;
}