aboutsummaryrefslogtreecommitdiffstats
path: root/src/dbusbind.c
diff options
context:
space:
mode:
authorMichael Albinus2008-08-01 18:35:49 +0000
committerMichael Albinus2008-08-01 18:35:49 +0000
commit367ea1732aaf87414718e7e1ed23916956f0fa4c (patch)
treec90345280d95c43d0540041a4493f934bd1da28a /src/dbusbind.c
parentdb18c5fd6fca1633508dc77d687789f38d905dd1 (diff)
downloademacs-367ea1732aaf87414718e7e1ed23916956f0fa4c.tar.gz
emacs-367ea1732aaf87414718e7e1ed23916956f0fa4c.zip
* dbusbind.c (xd_read_message): Handle D-Bus error messages.
Diffstat (limited to 'src/dbusbind.c')
-rw-r--r--src/dbusbind.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 21e3f83a509..c0c2a8bd719 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -1436,29 +1436,32 @@ xd_read_message (bus)
1436 1436
1437 /* Read message type, message serial, unique name, object path, 1437 /* Read message type, message serial, unique name, object path,
1438 interface and member from the message. */ 1438 interface and member from the message. */
1439 mtype = dbus_message_get_type (dmessage); 1439 mtype = dbus_message_get_type (dmessage);
1440 serial = (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN ? 1440 serial =
1441 dbus_message_get_reply_serial (dmessage) : 1441 ((mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN)
1442 dbus_message_get_serial (dmessage)); 1442 || (mtype == DBUS_MESSAGE_TYPE_ERROR))
1443 uname = dbus_message_get_sender (dmessage); 1443 ? dbus_message_get_reply_serial (dmessage)
1444 path = dbus_message_get_path (dmessage); 1444 : dbus_message_get_serial (dmessage);
1445 uname = dbus_message_get_sender (dmessage);
1446 path = dbus_message_get_path (dmessage);
1445 interface = dbus_message_get_interface (dmessage); 1447 interface = dbus_message_get_interface (dmessage);
1446 member = dbus_message_get_member (dmessage); 1448 member = dbus_message_get_member (dmessage);
1447 1449
1448 XD_DEBUG_MESSAGE ("Event received: %s %d %s %s %s %s %s", 1450 XD_DEBUG_MESSAGE ("Event received: %s %d %s %s %s %s %s",
1449 (mtype == DBUS_MESSAGE_TYPE_INVALID) ? 1451 (mtype == DBUS_MESSAGE_TYPE_INVALID)
1450 "DBUS_MESSAGE_TYPE_INVALID" : 1452 ? "DBUS_MESSAGE_TYPE_INVALID"
1451 (mtype == DBUS_MESSAGE_TYPE_METHOD_CALL) ? 1453 : (mtype == DBUS_MESSAGE_TYPE_METHOD_CALL)
1452 "DBUS_MESSAGE_TYPE_METHOD_CALL" : 1454 ? "DBUS_MESSAGE_TYPE_METHOD_CALL"
1453 (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) ? 1455 : (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN)
1454 "DBUS_MESSAGE_TYPE_METHOD_RETURN" : 1456 ? "DBUS_MESSAGE_TYPE_METHOD_RETURN"
1455 (mtype == DBUS_MESSAGE_TYPE_ERROR) ? 1457 : (mtype == DBUS_MESSAGE_TYPE_ERROR)
1456 "DBUS_MESSAGE_TYPE_METHOD_ERROR" : 1458 ? "DBUS_MESSAGE_TYPE_ERROR"
1457 "DBUS_MESSAGE_TYPE_METHOD_SIGNAL", 1459 : "DBUS_MESSAGE_TYPE_SIGNAL",
1458 serial, uname, path, interface, member, 1460 serial, uname, path, interface, member,
1459 SDATA (format2 ("%s", args, Qnil))); 1461 SDATA (format2 ("%s", args, Qnil)));
1460 1462
1461 if (mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN) 1463 if ((mtype == DBUS_MESSAGE_TYPE_METHOD_RETURN)
1464 || (mtype == DBUS_MESSAGE_TYPE_ERROR))
1462 { 1465 {
1463 /* Search for a registered function of the message. */ 1466 /* Search for a registered function of the message. */
1464 key = list2 (bus, make_number (serial)); 1467 key = list2 (bus, make_number (serial));