summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@src.gnome.org>2007-06-20 21:23:01 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2007-06-20 21:23:01 +0000
commit4f1952f28fae19083b80e676c930e0ef3469e179 (patch)
treea2f905712bfc7e9fb408ecebf5dc0cc4986d3007 /daemon
parent56e88cefbf42ca0831b4bed425b3b379ed8abec3 (diff)
downloadgdm-4f1952f28fae19083b80e676c930e0ef3469e179.tar.gz
add a large timeout
svn path=/branches/mccann-gobject/; revision=5010
Diffstat (limited to 'daemon')
-rw-r--r--daemon/gdm-product-slave.c12
-rw-r--r--daemon/gdm-session-worker.c34
-rw-r--r--daemon/gdm-session.c3
3 files changed, 27 insertions, 22 deletions
diff --git a/daemon/gdm-product-slave.c b/daemon/gdm-product-slave.c
index b67b42c1..da3b70c8 100644
--- a/daemon/gdm-product-slave.c
+++ b/daemon/gdm-product-slave.c
@@ -393,13 +393,13 @@ relay_session_started (GdmProductSlave *slave)
}
static void
-on_open (GdmSession *session,
- GdmProductSlave *slave)
+on_opened (GdmSession *session,
+ GdmProductSlave *slave)
{
GError *error;
gboolean res;
- g_debug ("session open");
+ g_debug ("session opened");
res = gdm_session_begin_verification (session,
slave->priv->selected_user,
&error);
@@ -839,7 +839,7 @@ on_relay_open (DBusGProxy *proxy,
error = NULL;
res = gdm_session_open (slave->priv->session,
"gdm",
- NULL /* hostname */,
+ "",
"/dev/console",
&error);
if (! res) {
@@ -854,8 +854,8 @@ create_new_session (GdmProductSlave *slave)
slave->priv->session = gdm_session_new ();
g_signal_connect (slave->priv->session,
- "open",
- G_CALLBACK (on_open),
+ "opened",
+ G_CALLBACK (on_opened),
slave);
g_signal_connect (slave->priv->session,
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index 4e1d8f42..dbda8229 100644
--- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c
@@ -62,6 +62,8 @@
#define GDM_SESSION_ROOT_UID 0
#endif
+#define MESSAGE_REPLY_TIMEOUT (10 * 60 * 1000)
+
struct GdmSessionWorkerPrivate
{
int exit_code;
@@ -453,14 +455,16 @@ gdm_session_worker_ask_question (GdmSessionWorker *worker,
char *answer;
error = NULL;
- res = dbus_g_proxy_call (worker->priv->server_proxy,
- "InfoQuery",
- &error,
- G_TYPE_STRING, question,
- G_TYPE_INVALID,
- G_TYPE_STRING, &answer,
- G_TYPE_INVALID);
+ res = dbus_g_proxy_call_with_timeout (worker->priv->server_proxy,
+ "InfoQuery",
+ MESSAGE_REPLY_TIMEOUT,
+ &error,
+ G_TYPE_STRING, question,
+ G_TYPE_INVALID,
+ G_TYPE_STRING, &answer,
+ G_TYPE_INVALID);
if (! res) {
+ /* FIXME: handle timeout */
g_warning ("Unable to send InfoQuery: %s", error->message);
g_error_free (error);
}
@@ -479,14 +483,16 @@ gdm_session_worker_ask_for_secret (GdmSessionWorker *worker,
g_debug ("Secret info query: %s", secret);
error = NULL;
- res = dbus_g_proxy_call (worker->priv->server_proxy,
- "SecretInfoQuery",
- &error,
- G_TYPE_STRING, secret,
- G_TYPE_INVALID,
- G_TYPE_STRING, &answer,
- G_TYPE_INVALID);
+ res = dbus_g_proxy_call_with_timeout (worker->priv->server_proxy,
+ "SecretInfoQuery",
+ MESSAGE_REPLY_TIMEOUT,
+ &error,
+ G_TYPE_STRING, secret,
+ G_TYPE_INVALID,
+ G_TYPE_STRING, &answer,
+ G_TYPE_INVALID);
if (! res) {
+ /* FIXME: handle timeout */
g_warning ("Unable to send SecretInfoQuery: %s", error->message);
g_error_free (error);
}
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index bafc03ab..c4712acb 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -567,7 +567,6 @@ gdm_session_handle_verified (GdmSession *session,
DBusMessage *message)
{
DBusMessage *reply;
- DBusError error;
g_debug ("Emitting 'user-verified' signal");
@@ -699,7 +698,7 @@ gdm_session_handle_secret_info_query (GdmSession *session,
DBusConnection *connection,
DBusMessage *message)
{
- DBusMessage *reply;
+ DBusError error;
const char *text;
dbus_error_init (&error);