diff options
Diffstat (limited to 'tools/dbus-monitor.c')
| -rw-r--r-- | tools/dbus-monitor.c | 28 | 
1 files changed, 27 insertions, 1 deletions
diff --git a/tools/dbus-monitor.c b/tools/dbus-monitor.c index 23ee346a..91668546 100644 --- a/tools/dbus-monitor.c +++ b/tools/dbus-monitor.c @@ -94,9 +94,35 @@ main (int argc, char *argv[])    dbus_connection_setup_with_g_main (connection, NULL); -  dbus_connection_add_filter (connection, filter_func, NULL, NULL); +  dbus_bus_add_match (connection, +		      "type='signal'", +		      &error); +  if (dbus_error_is_set (&error)) +    goto lose; +  dbus_bus_add_match (connection, +		      "type='method_call'", +		      &error); +  if (dbus_error_is_set (&error)) +    goto lose; +  dbus_bus_add_match (connection, +		      "type='method_return'", +		      &error); +  if (dbus_error_is_set (&error)) +    goto lose; +  dbus_bus_add_match (connection, +		      "type='error'", +		      &error); +  if (dbus_error_is_set (&error)) +    goto lose; +  if (!dbus_connection_add_filter (connection, filter_func, NULL, NULL)) { +    fprintf (stderr, "Couldn't add filter!\n"); +    exit (1); +  }    g_main_loop_run (loop);    exit (0); + lose: +  fprintf (stderr, "Error: %s\n", error.message); +  exit (1);  }  | 
