gdbus: Add a --timeout option
authorDavid Zeuthen <davidz@redhat.com>
Fri, 6 May 2011 19:25:49 +0000 (15:25 -0400)
committerDavid Zeuthen <davidz@redhat.com>
Fri, 6 May 2011 19:27:52 +0000 (15:27 -0400)
Signed-off-by: David Zeuthen <davidz@redhat.com>
docs/reference/gio/gdbus.xml
gio/gdbus-tool.c

index 280b478..75e7eeb 100644 (file)
@@ -48,6 +48,9 @@
     <arg choice="plain">--dest <replaceable>bus_name</replaceable></arg>
     <arg choice="plain">--object-path <replaceable>/path/to/object</replaceable></arg>
     <arg choice="plain">--method <replaceable>org.project.InterfaceName.MethodName</replaceable></arg>
+    <group>
+      <arg choice="plain">--timeout <replaceable>seconds</replaceable></arg>
+    </group>
     <arg choice="plain">ARG1</arg>
     <arg choice="plain" rep="repeat">ARG2</arg>
   </cmdsynopsis>
index 56efd40..9228122 100644 (file)
@@ -527,12 +527,14 @@ _g_variant_parse_me_harder (GVariantType   *type,
 static gchar *opt_call_dest = NULL;
 static gchar *opt_call_object_path = NULL;
 static gchar *opt_call_method = NULL;
+static gint opt_call_timeout = -1;
 
 static const GOptionEntry call_entries[] =
 {
   { "dest", 'd', 0, G_OPTION_ARG_STRING, &opt_call_dest, N_("Destination name to invoke method on"), NULL},
   { "object-path", 'o', 0, G_OPTION_ARG_STRING, &opt_call_object_path, N_("Object path to invoke method on"), NULL},
   { "method", 'm', 0, G_OPTION_ARG_STRING, &opt_call_method, N_("Method and interface name"), NULL},
+  { "timeout", 't', 0, G_OPTION_ARG_INT, &opt_call_timeout, N_("Timeout in seconds"), NULL},
   { NULL }
 };
 
@@ -809,7 +811,7 @@ handle_call (gint        *argc,
                                         parameters,
                                         NULL,
                                         G_DBUS_CALL_FLAGS_NONE,
-                                        -1,
+                                        opt_call_timeout > 0 ? opt_call_timeout * 1000 : opt_call_timeout,
                                         NULL,
                                         &error);
   if (result == NULL)