diff options
author | Michael Albinus <michael.albinus@gmx.de> | 2008-08-01 18:35:49 +0000 |
---|---|---|
committer | Michael Albinus <michael.albinus@gmx.de> | 2008-08-01 18:35:49 +0000 |
commit | 367ea1732aaf87414718e7e1ed23916956f0fa4c (patch) | |
tree | c90345280d95c43d0540041a4493f934bd1da28a /src/dbusbind.c | |
parent | db18c5fd6fca1633508dc77d687789f38d905dd1 (diff) |
* dbusbind.c (xd_read_message): Handle D-Bus error messages.
Diffstat (limited to 'src/dbusbind.c')
-rw-r--r-- | src/dbusbind.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/dbusbind.c b/src/dbusbind.c index 21e3f83a50..c0c2a8bd71 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c @@ -1436,29 +1436,32 @@ xd_read_message (bus) /* Read message type, message serial, unique name, object path, interface and member from the message. */ - mtype = dbus_message_get_type (dmessage); - serial = (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN ? - dbus_message_get_reply_serial (dmessage) : - dbus_message_get_serial (dmessage)); - uname = dbus_message_get_sender (dmessage); - path = dbus_message_get_path (dmessage); + mtype = dbus_message_get_type (dmessage); + serial = + ((mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) + || (mtype == DBUS_MESSAGE_TYPE_ERROR)) + ? dbus_message_get_reply_serial (dmessage) + : dbus_message_get_serial (dmessage); + uname = dbus_message_get_sender (dmessage); + path = dbus_message_get_path (dmessage); interface = dbus_message_get_interface (dmessage); - member = dbus_message_get_member (dmessage); + member = dbus_message_get_member (dmessage); XD_DEBUG_MESSAGE ("Event received: %s %d %s %s %s %s %s", - (mtype == DBUS_MESSAGE_TYPE_INVALID) ? - "DBUS_MESSAGE_TYPE_INVALID" : - (mtype == DBUS_MESSAGE_TYPE_METHOD_CALL) ? - "DBUS_MESSAGE_TYPE_METHOD_CALL" : - (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) ? - "DBUS_MESSAGE_TYPE_METHOD_RETURN" : - (mtype == DBUS_MESSAGE_TYPE_ERROR) ? - "DBUS_MESSAGE_TYPE_METHOD_ERROR" : - "DBUS_MESSAGE_TYPE_METHOD_SIGNAL", + (mtype == DBUS_MESSAGE_TYPE_INVALID) + ? "DBUS_MESSAGE_TYPE_INVALID" + : (mtype == DBUS_MESSAGE_TYPE_METHOD_CALL) + ? "DBUS_MESSAGE_TYPE_METHOD_CALL" + : (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) + ? "DBUS_MESSAGE_TYPE_METHOD_RETURN" + : (mtype == DBUS_MESSAGE_TYPE_ERROR) + ? "DBUS_MESSAGE_TYPE_ERROR" + : "DBUS_MESSAGE_TYPE_SIGNAL", serial, uname, path, interface, member, SDATA (format2 ("%s", args, Qnil))); - if (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) + if ((mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) + || (mtype == DBUS_MESSAGE_TYPE_ERROR)) { /* Search for a registered function of the message. */ key = list2 (bus, make_number (serial)); |