chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: install rules file that ignore those nasty useless tty devices by default
[elogind.git]
/
dbus.c
diff --git
a/dbus.c
b/dbus.c
index ab32b9f81f89937a6b590112c79ae4bb20e2a9cf..e2f8f3cd496b15598e5367786e90ddfe4dd8cda0 100644
(file)
--- a/
dbus.c
+++ b/
dbus.c
@@
-36,6
+36,10
@@
static void api_bus_dispatch_status(DBusConnection *bus, DBusDispatchStatus stat
assert(bus);
assert(m);
assert(bus);
assert(m);
+
+ if (!m->api_bus)
+ return;
+
assert(m->api_bus == bus);
m->request_api_bus_dispatch = status != DBUS_DISPATCH_COMPLETE;
assert(m->api_bus == bus);
m->request_api_bus_dispatch = status != DBUS_DISPATCH_COMPLETE;
@@
-46,6
+50,10
@@
static void system_bus_dispatch_status(DBusConnection *bus, DBusDispatchStatus s
assert(bus);
assert(m);
assert(bus);
assert(m);
+
+ if (!m->system_bus)
+ return;
+
assert(m->system_bus == bus);
m->request_system_bus_dispatch = status != DBUS_DISPATCH_COMPLETE;
assert(m->system_bus == bus);
m->request_system_bus_dispatch = status != DBUS_DISPATCH_COMPLETE;
@@
-304,7
+312,7
@@
static DBusHandlerResult api_bus_message_filter(DBusConnection *connection, DBu
/* dbus_message_get_path(message)); */
if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL, "Disconnected")) {
/* dbus_message_get_path(message)); */
if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL, "Disconnected")) {
- log_error("Warning! D-Bus connection terminated.");
+ log_error("Warning!
API
D-Bus connection terminated.");
bus_done_api(m);
} else if (dbus_message_is_signal(message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) {
bus_done_api(m);
} else if (dbus_message_is_signal(message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) {
@@
-342,7
+350,7
@@
static DBusHandlerResult system_bus_message_filter(DBusConnection *connection,
/* dbus_message_get_path(message)); */
if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL, "Disconnected")) {
/* dbus_message_get_path(message)); */
if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL, "Disconnected")) {
- log_error("Warning! D-Bus connection terminated.");
+ log_error("Warning!
System
D-Bus connection terminated.");
bus_done_system(m);
} if (dbus_message_is_signal(message, "org.freedesktop.systemd1.Agent", "Released")) {
bus_done_system(m);
} if (dbus_message_is_signal(message, "org.freedesktop.systemd1.Agent", "Released")) {
@@
-613,10
+621,10
@@
void bus_done_api(Manager *m) {
if (m->system_bus == m->api_bus)
m->system_bus = NULL;
if (m->system_bus == m->api_bus)
m->system_bus = NULL;
+ dbus_connection_set_dispatch_status_function(m->api_bus, NULL, NULL, NULL);
dbus_connection_close(m->api_bus);
dbus_connection_unref(m->api_bus);
m->api_bus = NULL;
dbus_connection_close(m->api_bus);
dbus_connection_unref(m->api_bus);
m->api_bus = NULL;
-
}
if (m->subscribed) {
}
if (m->subscribed) {
@@
-637,6
+645,7
@@
void bus_done_system(Manager *m) {
bus_done_api(m);
if (m->system_bus) {
bus_done_api(m);
if (m->system_bus) {
+ dbus_connection_set_dispatch_status_function(m->system_bus, NULL, NULL, NULL);
dbus_connection_close(m->system_bus);
dbus_connection_unref(m->system_bus);
m->system_bus = NULL;
dbus_connection_close(m->system_bus);
dbus_connection_unref(m->system_bus);
m->system_bus = NULL;
@@
-688,7
+697,7
@@
DBusHandlerResult bus_default_message_handler(Manager *m, DBusMessage *message,
if (!dbus_message_iter_open_container(&iter, DBUS_TYPE_VARIANT, p->signature, &sub))
goto oom;
if (!dbus_message_iter_open_container(&iter, DBUS_TYPE_VARIANT, p->signature, &sub))
goto oom;
- if ((r = p->append(m, &sub, property, p->data)) < 0) {
+ if ((r = p->append(m, &sub, property,
(void*)
p->data)) < 0) {
if (r == -ENOMEM)
goto oom;
if (r == -ENOMEM)
goto oom;
@@
-730,7
+739,7
@@
DBusHandlerResult bus_default_message_handler(Manager *m, DBusMessage *message,
!dbus_message_iter_open_container(&sub2, DBUS_TYPE_VARIANT, p->signature, &sub3))
goto oom;
!dbus_message_iter_open_container(&sub2, DBUS_TYPE_VARIANT, p->signature, &sub3))
goto oom;
- if ((r = p->append(m, &sub3, p->property, p->data)) < 0) {
+ if ((r = p->append(m, &sub3, p->property,
(void*)
p->data)) < 0) {
if (r == -ENOMEM)
goto oom;
if (r == -ENOMEM)
goto oom;