summaryrefslogtreecommitdiff
path: root/liblightdm-gobject
diff options
context:
space:
mode:
Diffstat (limited to 'liblightdm-gobject')
-rw-r--r--liblightdm-gobject/greeter.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 57ac2774..33562bce 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -465,6 +465,8 @@ send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GE
"Failed to write to daemon: %s",
write_error->message);
g_clear_error (&write_error);
+ if (status == G_IO_STATUS_AGAIN)
+ continue;
if (status != G_IO_STATUS_NORMAL)
return FALSE;
data_length -= n_written;
@@ -774,7 +776,12 @@ recv_message (LightDMGreeter *greeter, gboolean block, guint8 **message, gsize *
n_to_read - priv->n_read,
&n_read,
&read_error);
- if (status != G_IO_STATUS_NORMAL)
+ if (status == G_IO_STATUS_AGAIN)
+ {
+ if (block)
+ continue;
+ }
+ else if (status != G_IO_STATUS_NORMAL)
{
g_set_error (error, LIGHTDM_GREETER_ERROR, LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR,
"Failed to read from daemon: %s",