2014-03-11 12:03:08 +01:00
|
|
|
From fe7f06f142cf42928e419d8578afd75bf1439672 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Lennart Poettering <lennart@poettering.net>
|
|
|
|
Date: Tue, 11 Mar 2014 04:10:19 +0100
|
|
|
|
Subject: [PATCH] dbus: suppress duplicate and misleading messages
|
|
|
|
|
|
|
|
When we try to send a signal on a connection we didn't hae the time to
|
|
|
|
process the Disconnected message yet, don't generate multiple warning
|
|
|
|
messages, but only a single debug message.
|
|
|
|
|
|
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=75874
|
|
|
|
---
|
|
|
|
src/core/dbus-manager.c | 7 +++++--
|
|
|
|
src/core/dbus-unit.c | 12 ++----------
|
|
|
|
2 files changed, 7 insertions(+), 12 deletions(-)
|
|
|
|
|
|
|
|
diff --git src/core/dbus-manager.c src/core/dbus-manager.c
|
|
|
|
index 34ef1f5..30f28b6 100644
|
|
|
|
--- src/core/dbus-manager.c
|
|
|
|
+++ src/core/dbus-manager.c
|
2014-03-11 12:07:39 +01:00
|
|
|
@@ -1357,8 +1357,11 @@ static int reply_unit_file_changes_and_f
|
2014-03-11 12:03:08 +01:00
|
|
|
unsigned i;
|
|
|
|
int r;
|
|
|
|
|
|
|
|
- if (n_changes > 0)
|
2014-03-11 12:07:39 +01:00
|
|
|
- bus_manager_foreach_client(m, send_unit_files_changed, NULL);
|
2014-03-11 12:03:08 +01:00
|
|
|
+ if (n_changes > 0) {
|
2014-03-11 12:07:39 +01:00
|
|
|
+ r = bus_manager_foreach_client(m, send_unit_files_changed, NULL);
|
2014-03-11 12:03:08 +01:00
|
|
|
+ if (r < 0)
|
2014-03-11 12:07:39 +01:00
|
|
|
+ log_debug("Failed to send UnitFilesChanged signal: %s", strerror(-r));
|
2014-03-11 12:03:08 +01:00
|
|
|
+ }
|
|
|
|
|
|
|
|
r = sd_bus_message_new_method_return(message, &reply);
|
|
|
|
if (r < 0)
|
|
|
|
diff --git src/core/dbus-unit.c src/core/dbus-unit.c
|
|
|
|
index 515ac8b..07e7f20 100644
|
|
|
|
--- src/core/dbus-unit.c
|
|
|
|
+++ src/core/dbus-unit.c
|
|
|
|
@@ -638,21 +638,13 @@ static int send_changed_signal(sd_bus *bus, void *userdata) {
|
|
|
|
bus, p,
|
|
|
|
UNIT_VTABLE(u)->bus_interface,
|
|
|
|
NULL);
|
|
|
|
- if (r < 0) {
|
|
|
|
- log_warning("Failed to send out specific PropertiesChanged signal for %s: %s", u->id, strerror(-r));
|
|
|
|
+ if (r < 0)
|
|
|
|
return r;
|
|
|
|
- }
|
|
|
|
|
|
|
|
- r = sd_bus_emit_properties_changed_strv(
|
|
|
|
+ return sd_bus_emit_properties_changed_strv(
|
|
|
|
bus, p,
|
|
|
|
"org.freedesktop.systemd1.Unit",
|
|
|
|
NULL);
|
|
|
|
- if (r < 0) {
|
|
|
|
- log_warning("Failed to send out generic PropertiesChanged signal for %s: %s", u->id, strerror(-r));
|
|
|
|
- return r;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void bus_unit_send_change_signal(Unit *u) {
|
|
|
|
--
|
|
|
|
1.7.9.2
|
|
|
|
|
2014-03-11 12:07:39 +01:00
|
|
|
--- src/core/dbus-manager.c
|
|
|
|
+++ src/core/dbus-manager.c 2014-03-11 11:05:44.350235568 +0000
|