diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2016-06-27 16:13:28 +1200 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2016-06-27 16:13:28 +1200 |
commit | 6c7de4a3a5d474ae461d1c8627b579edf71da280 (patch) | |
tree | 054702cd748e748cfd1e6880e2e14b4c3f41c64b /liblightdm-gobject | |
parent | 5178da9f81e4f4eda4069c802c43d9a5cba7089a (diff) | |
download | lightdm-git-6c7de4a3a5d474ae461d1c8627b579edf71da280.tar.gz |
Correctly handle G_IO_STATUS_AGAIN
Diffstat (limited to 'liblightdm-gobject')
-rw-r--r-- | liblightdm-gobject/greeter.c | 9 |
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", |