summaryrefslogtreecommitdiffstats
path: root/bus/main.c
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2006-09-06 21:16:12 +0000
committerJohn (J5) Palmieri <johnp@redhat.com>2006-09-06 21:16:12 +0000
commit61316dd897846c6ee18daccdddaf8a78650a1406 (patch)
tree9054cac6119a0608661a305b2fae65729e88a375 /bus/main.c
parente4f3d0ca17e2b43e5f921dd6b09c3648cbb3ba63 (diff)
* bus/driver.c:
(bus_driver_generate_introspect_string): New method for populating a DBusString with the introspect data (bus_driver_handle_introspect): Move introspect generation code to bus_driver_generate_introspect_string * bus/main.c: (introspect): New function which prints out the intropect data and exits (main): Add a --introspect switch
Diffstat (limited to 'bus/main.c')
-rw-r--r--bus/main.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/bus/main.c b/bus/main.c
index ba13983f..b4ace1e4 100644
--- a/bus/main.c
+++ b/bus/main.c
@@ -21,6 +21,7 @@
*
*/
#include "bus.h"
+#include "driver.h"
#include <dbus/dbus-internals.h>
#include <dbus/dbus-watch.h>
#include <stdio.h>
@@ -66,7 +67,7 @@ signal_handler (int sig)
static void
usage (void)
{
- fprintf (stderr, DAEMON_NAME " [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork]\n");
+ fprintf (stderr, DAEMON_NAME " [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork] [--introspect]\n");
exit (1);
}
@@ -82,6 +83,30 @@ version (void)
}
static void
+introspect (void)
+{
+ DBusString xml;
+ const char *v_STRING;
+
+ if (!_dbus_string_init (&xml))
+ goto oom;
+
+ if (!bus_driver_generate_introspect_string (&xml))
+ {
+ _dbus_string_free (&xml);
+ goto oom;
+ }
+
+ v_STRING = _dbus_string_get_const_data (&xml);
+ printf ("%s\n", v_STRING);
+
+ exit (0);
+
+ oom:
+ _dbus_warn ("Can not introspect - Out of memory\n");
+ exit (1);
+}
+static void
check_two_config_files (const DBusString *config_file,
const char *extra_arg)
{
@@ -231,6 +256,8 @@ main (int argc, char **argv)
usage ();
else if (strcmp (arg, "--version") == 0)
version ();
+ else if (strcmp (arg, "--introspect") == 0)
+ introspect ();
else if (strcmp (arg, "--nofork") == 0)
force_fork = FORK_NEVER;
else if (strcmp (arg, "--fork") == 0)