Mercurial > emacs
comparison src/dbusbind.c @ 97211:194ecdbbd8a3
* dbusbind.c (xd_read_message): Handle D-Bus error messages.
| author | Michael Albinus <michael.albinus@gmx.de> |
|---|---|
| date | Fri, 01 Aug 2008 18:35:10 +0000 |
| parents | b0fa771b5389 |
| children | 14fccbb34a16 |
comparison
equal
deleted
inserted
replaced
| 97210:50d4090b5c35 | 97211:194ecdbbd8a3 |
|---|---|
| 1434 args = Fnreverse (args); | 1434 args = Fnreverse (args); |
| 1435 } | 1435 } |
| 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)); |
| 1465 value = Fgethash (key, Vdbus_registered_functions_table, Qnil); | 1468 value = Fgethash (key, Vdbus_registered_functions_table, Qnil); |
| 1466 | 1469 |
