From b6203ab425651e78fdab0219b686c5e24a1bc661 Mon Sep 17 00:00:00 2001 From: Nathan Williams Date: Tue, 28 Feb 2012 12:52:34 -0500 Subject: [PATCH] libmm-glib: set the gdbus timeout to a value longer than that remote operation timeout Lets commands like "mmcli -m 0 --command-timeout=60 --command='+COPS=?'" work, instead of tripping over the 25-second gdbus default timeout first. Change-Id: I67034423ca5ab08a07ecf3c9e313082d4860ffb3 --- libmm-glib/mm-modem.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/libmm-glib/mm-modem.c b/libmm-glib/mm-modem.c index a27f6c29..8157f4e6 100644 --- a/libmm-glib/mm-modem.c +++ b/libmm-glib/mm-modem.c @@ -1458,14 +1458,19 @@ mm_modem_command (MMModem *self, GAsyncReadyCallback callback, gpointer user_data) { + gint old_timeout; + g_return_if_fail (MM_GDBUS_IS_MODEM (self)); + old_timeout = g_dbus_proxy_get_default_timeout (G_DBUS_PROXY (self)); + g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self), (timeout + 1) * 1000); mm_gdbus_modem_call_command (self, cmd, timeout, cancellable, callback, user_data); + g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self), old_timeout); } gchar * @@ -1494,15 +1499,22 @@ mm_modem_command_sync (MMModem *self, GError **error) { gchar *result; + gboolean success; + gint old_timeout; g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL); - if (!mm_gdbus_modem_call_command_sync (self, - cmd, - timeout, - &result, - cancellable, - error)) + old_timeout = g_dbus_proxy_get_default_timeout (G_DBUS_PROXY (self)); + g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self), (timeout + 1) * 1000); + success = mm_gdbus_modem_call_command_sync (self, + cmd, + timeout, + &result, + cancellable, + error); + g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self), old_timeout); + + if (!success) return NULL; return result;