summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/dbus-monitor.16
-rw-r--r--tools/dbus-monitor.c25
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);