Re: [systemd-devel] [PATCH v2] localed: log xkbcommon errors

2014-12-03 Thread Lennart Poettering
On Wed, 03.12.14 14:56, Jan Synacek (jsyna...@redhat.com) wrote:

> 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.

Applied the patch bug simplified log_xkb a bit by just passing
everything we get into log_internalv().

Thanks!

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH v2] localed: log xkbcommon errors

2014-12-03 Thread Jan Synacek
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.
---
Changes in v2:
- don't log a null message if vasprintf() fails

 src/locale/localed.c | 19 +++
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/locale/localed.c b/src/locale/localed.c
index 654b291..c4e4829 100644
--- a/src/locale/localed.c
+++ b/src/locale/localed.c
@@ -1009,7 +1009,16 @@ 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 */
+_cleanup_free_ char *msg = NULL;
+const char *fmt;
+char prefix[] = "libxkbcommon: ";
+
+fmt = strappenda(prefix, format);
+if (vasprintf(&msg, fmt, args) < 0) {
+(void) log_oom();
+return;
+}
+log_debug("%s", msg);
 }
 
 static int verify_xkb_rmlvo(const char *model, const char *layout, const char 
*variant, const char *options) {
@@ -1092,9 +1101,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 ||
-- 
1.9.3

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel