diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/dbus-monitor.1 | 6 | ||||
-rw-r--r-- | tools/dbus-monitor.c | 25 |
2 files changed, 28 insertions, 3 deletions
diff --git a/tools/dbus-monitor.1 b/tools/dbus-monitor.1 index 2c728735..ff4172ec 100644 --- a/tools/dbus-monitor.1 +++ b/tools/dbus-monitor.1 @@ -8,6 +8,7 @@ dbus-monitor \- debug probe to print message bus messages .SH SYNOPSIS .PP .B dbus-monitor +[\-\-session] .SH DESCRIPTION @@ -20,9 +21,8 @@ the big picture. There are two well-known message buses: the systemwide message bus (installed on many systems as the "messagebus" service) and the per-user-login-session message bus (started each time a user logs in). -Right now, \fIdbus-monitor\fP is hardcoded to only work with the -systemwide message bus. It should really be extended to have a -\-\-session command line option as with \fIdbus-send\fP. +\fIdbus-monitor\fP by default monitors the systemwide bus; to monitor the +session bus, specify \-\-session. .PP The message bus configuration may keep \fIdbus-monitor\fP from seeing diff --git a/tools/dbus-monitor.c b/tools/dbus-monitor.c index 8a8e6585..441ead38 100644 --- a/tools/dbus-monitor.c +++ b/tools/dbus-monitor.c @@ -89,6 +89,13 @@ handler_func (DBusMessageHandler *handler, return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; } +static void +usage (char *name, int ecode) +{ + fprintf (stderr, "Usage: %s [--session]\n", name); + exit (ecode); +} + int main (int argc, char *argv[]) { @@ -97,6 +104,24 @@ main (int argc, char *argv[]) DBusBusType type = DBUS_BUS_SYSTEM; DBusMessageHandler *handler; GMainLoop *loop; + int i; + + for (i = 1; i < argc; i++) + { + char *arg = argv[i]; + + if (!strcmp (arg, "--session")) + type = DBUS_BUS_SESSION; + else if (!strcmp (arg, "--help")) + usage (argv[0], 0); + else if (!strcmp (arg, "--")) + break; + else if (arg[0] == '-') + usage (argv[0], 1); + } + + if (argc > 2) + usage (argv[0], 1); loop = g_main_loop_new (NULL, FALSE); |