diff options
| author | Havoc Pennington <hp@redhat.com> | 2003-08-18 22:43:30 +0000 | 
|---|---|---|
| committer | Havoc Pennington <hp@redhat.com> | 2003-08-18 22:43:30 +0000 | 
| commit | 68a3c593b9e77b33614726363c7b6fd85d113021 (patch) | |
| tree | ec3035e33c20febc29d2b27e13139540dc739bbc /tools | |
| parent | 95717a938b237d12211935f6a7467ef610288fe5 (diff) | |
2003-08-18  Havoc Pennington  <hp@redhat.com>
	* dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
	* dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
	dumb bug created earlier (wrong order of args to
	decode_header_data())
	* tools/dbus-send.c: port
	* tools/dbus-print-message.c (print_message): port
        * test/data/*messages: port all messages over
        * dbus/dbus-message-builder.c: support including
	message type
        * bus/driver.c: port over
	* bus/dispatch.c: port over to new stuff
	* dbus/dbus-connection.c (_dbus_connection_new_for_transport):
	rename disconnect signal to "Disconnected"
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/dbus-monitor.c | 4 | ||||
| -rw-r--r-- | tools/dbus-print-message.c | 37 | ||||
| -rw-r--r-- | tools/dbus-send.1 | 8 | ||||
| -rw-r--r-- | tools/dbus-send.c | 30 | 
4 files changed, 67 insertions, 12 deletions
| diff --git a/tools/dbus-monitor.c b/tools/dbus-monitor.c index a0f77407..c7293abb 100644 --- a/tools/dbus-monitor.c +++ b/tools/dbus-monitor.c @@ -37,7 +37,9 @@ handler_func (DBusMessageHandler *handler,  {    print_message (message); -  if (dbus_message_has_name (message, DBUS_MESSAGE_LOCAL_DISCONNECT)) +  if (dbus_message_is_signal (message, +                              DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL, +                              "Disconnected"))      exit (0);    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; 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 diff --git a/tools/dbus-send.1 b/tools/dbus-send.1 index f71c4c6e..978ee2e7 100644 --- a/tools/dbus-send.1 +++ b/tools/dbus-send.1 @@ -42,12 +42,16 @@ byte, boolean.  (D-BUS supports more types than these, but  Here is an example invocation:  .nf -  dbus-send \-\-dest='org.freedesktop.ExampleService'     \\ -            org.freedesktop.ExampleMessage              \\ +  dbus-send \-\-dest='org.freedesktop.ExampleService'        \\ +            org.freedesktop.ExampleInterface.ExampleMethod   \\              int32:47 string:'hello world' double:65.32  .fi +Note that the interface is separated from a method or signal  +name by a dot, though in the actual protocol the interface +and the interface member are separate fields. +  .SH OPTIONS  The following options are supported:  .TP diff --git a/tools/dbus-send.c b/tools/dbus-send.c index fb876b52..7ea49aac 100644 --- a/tools/dbus-send.c +++ b/tools/dbus-send.c @@ -44,7 +44,7 @@ main (int argc, char *argv[])    DBusMessageIter iter;    int i;    DBusBusType type = DBUS_BUS_SESSION; -  const char *dest = DBUS_SERVICE_BROADCAST; +  const char *dest = DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST;    char *name = NULL;    int message_type = DBUS_MESSAGE_TYPE_SIGNAL;    const char *type_str = NULL; @@ -106,11 +106,35 @@ main (int argc, char *argv[])    if (message_type == DBUS_MESSAGE_TYPE_METHOD_CALL)      { -      message = dbus_message_new_method_call (name, NULL); +      char *last_dot; + +      last_dot = strrchr (name, '.'); +      if (last_dot == NULL) +        { +          fprintf (stderr, "Must use org.mydomain.Interface.Method notation, no dot in \"%s\"\n", +                   name); +          exit (1); +        } +      *last_dot = '\0'; +       +      message = dbus_message_new_method_call (name, +                                              last_dot + 1, +                                              NULL);      }    else if (message_type == DBUS_MESSAGE_TYPE_SIGNAL)      { -      message = dbus_message_new_signal (name); +      char *last_dot; + +      last_dot = strrchr (name, '.'); +      if (last_dot == NULL) +        { +          fprintf (stderr, "Must use org.mydomain.Interface.Signal notation, no dot in \"%s\"\n", +                   name); +          exit (1); +        } +      *last_dot = '\0'; +       +      message = dbus_message_new_signal (name, last_dot + 1);      }    else      { | 
