diff options
Diffstat (limited to 'tools/dbus-print-message.c')
-rw-r--r-- | tools/dbus-print-message.c | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/tools/dbus-print-message.c b/tools/dbus-print-message.c index 7c5328da..43c41c73 100644 --- a/tools/dbus-print-message.c +++ b/tools/dbus-print-message.c @@ -48,12 +48,37 @@ print_message (DBusMessage *message) message_type = dbus_message_get_type (message); sender = dbus_message_get_sender (message); - - printf ("%s name=%s; sender=%s\n", - type_to_name (message_type), - dbus_message_get_name (message), - sender ? sender : "(no sender)"); - + + switch (message_type) + { + case DBUS_MESSAGE_TYPE_METHOD_CALL: + case DBUS_MESSAGE_TYPE_SIGNAL: + printf ("%s interface=%s; member=%s; sender=%s\n", + type_to_name (message_type), + dbus_message_get_interface (message), + dbus_message_get_member (message), + sender ? sender : "(no sender)"); + break; + + case DBUS_MESSAGE_TYPE_METHOD_RETURN: + printf ("%s; sender=%s\n", + type_to_name (message_type), + sender ? sender : "(no sender)"); + break; + + case DBUS_MESSAGE_TYPE_ERROR: + printf ("%s name=%s; sender=%s\n", + type_to_name (message_type), + dbus_message_get_error_name (message), + sender ? sender : "(no sender)"); + break; + + default: + printf ("Message of unknown type %d received\n", + message_type); + break; + } + dbus_message_iter_init (message, &iter); do |