summaryrefslogtreecommitdiffstats
path: root/src/Daemon/CommLayerServerDBus.cpp
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-01-27 16:26:46 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-01-27 16:26:46 +0100
commitd192b691e4464b29d970c40ba4f28117ccf6a094 (patch)
tree7a4698a89127d428024054741a82b5c1b93a822d /src/Daemon/CommLayerServerDBus.cpp
parent8ee0526d6b07c329a016e8d0009db51e9839e9f4 (diff)
parente742f63e9c56cc2c913fa8cfda7a9d583a2c2aa2 (diff)
downloadabrt-d192b691e4464b29d970c40ba4f28117ccf6a094.tar.gz
abrt-d192b691e4464b29d970c40ba4f28117ccf6a094.tar.xz
abrt-d192b691e4464b29d970c40ba4f28117ccf6a094.zip
Merge branch 'master' into rhel6
Diffstat (limited to 'src/Daemon/CommLayerServerDBus.cpp')
-rw-r--r--src/Daemon/CommLayerServerDBus.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Daemon/CommLayerServerDBus.cpp b/src/Daemon/CommLayerServerDBus.cpp
index f1f10e5..f247158 100644
--- a/src/Daemon/CommLayerServerDBus.cpp
+++ b/src/Daemon/CommLayerServerDBus.cpp
@@ -565,6 +565,17 @@ CCommLayerServerDBus::CCommLayerServerDBus()
//maybe check that r == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER instead?
handle_dbus_err(rc < 0, &err);
VERB3 log("dbus init done");
+
+ /* dbus_bus_request_name can already read some data. For example,
+ * if we were autostarted, the call which caused autostart arrives
+ * at this moment. Thus while dbus fd hasn't any data anymore,
+ * dbus library can buffer a message or two.
+ * If we don't do this, the data won't be processed
+ * until next dbus data arrives.
+ */
+ int cnt = 10;
+ while (dbus_connection_dispatch(conn) != DBUS_DISPATCH_COMPLETE && --cnt)
+ VERB3 log("processed initial buffered dbus message");
}
CCommLayerServerDBus::~CCommLayerServerDBus()