|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
From 427c71629ea375e4ca1841a55902b40de21f2ab4 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
From: David Herrmann <dh.herrmann@gmail.com>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Date: Thu, 28 Aug 2014 15:24:00 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Subject: [PATCH] bus: don't skip interfaces in
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
bus_message_map_properties_changed()
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Skipping interfaces randomly without the caller specifying it is nasty.
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Avoid this and let the caller do that themselves.
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
src/libsystemd-terminal/idev-keyboard.c | 15 +++++++++++----
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
src/libsystemd/sd-bus/bus-util.c | 3 ---
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
2 files changed, 11 insertions(+), 7 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
diff --git a/src/libsystemd-terminal/idev-keyboard.c b/src/libsystemd-terminal/idev-keyboard.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
index 03f54bb74f..ab9e4811b3 100644
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
--- a/src/libsystemd-terminal/idev-keyboard.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+++ b/src/libsystemd-terminal/idev-keyboard.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -317,11 +317,14 @@ static int kbdctx_locale_props_changed_fn(sd_bus *bus,
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
kc->slot_locale_get_all = sd_bus_slot_unref(kc->slot_locale_get_all);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ /* skip interface name */
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ r = sd_bus_message_skip(signal, "s");
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ goto error;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
r = bus_message_map_properties_changed(bus, signal, kbdctx_locale_map, kc);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- log_debug("idev-keyboard: cannot handle PropertiesChanged from locale1: %s", strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- return r;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ goto error;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
if (r > 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
r = kbdctx_query_locale(kc);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -331,6 +334,10 @@ static int kbdctx_locale_props_changed_fn(sd_bus *bus,
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
kbdctx_refresh_keymap(kc);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+error:
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ log_debug("idev-keyboard: cannot handle PropertiesChanged from locale1: %s", strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ return r;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static int kbdctx_setup_bus(kbdctx *kc) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
diff --git a/src/libsystemd/sd-bus/bus-util.c b/src/libsystemd/sd-bus/bus-util.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
index aed3889b12..a85d36180e 100644
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
--- a/src/libsystemd/sd-bus/bus-util.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+++ b/src/libsystemd/sd-bus/bus-util.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -1051,9 +1051,6 @@ int bus_message_map_properties_changed(sd_bus *bus,
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
assert(m);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
assert(map);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- /* skip interface, but allow callers to do that themselves */
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- sd_bus_message_skip(m, "s");
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
-
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
r = bus_message_map_all_properties(bus, m, map, userdata);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
return r;
|