[glib] GSocket: ignore timed out state when not relevant
- From: Olivier Crête <Tester src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] GSocket: ignore timed out state when not relevant
- Date: Mon, 24 Mar 2014 15:25:19 +0000 (UTC)
commit 0c65f7e45a29fa93b0e24488ef881d374d621541
Author: Olivier Crête <olivier crete collabora com>
Date: Fri Mar 14 17:46:38 2014 -0400
GSocket: ignore timed out state when not relevant
Do this by separating the timeout check from the other socket checks.
https://bugzilla.gnome.org/show_bug.cgi?id=726375
gio/gsocket.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/gio/gsocket.c b/gio/gsocket.c
index 4590c38..b9c02e7 100644
--- a/gio/gsocket.c
+++ b/gio/gsocket.c
@@ -328,6 +328,13 @@ check_socket (GSocket *socket,
return FALSE;
}
+ return TRUE;
+}
+
+static gboolean
+check_timeout (GSocket *socket,
+ GError **error)
+{
if (socket->priv->timed_out)
{
socket->priv->timed_out = FALSE;
@@ -2232,6 +2239,9 @@ g_socket_accept (GSocket *socket,
if (!check_socket (socket, error))
return NULL;
+ if (!check_timeout (socket, error))
+ return NULL;
+
while (TRUE)
{
if (socket->priv->blocking &&
@@ -2428,6 +2438,9 @@ g_socket_check_connect_result (GSocket *socket,
if (!check_socket (socket, error))
return FALSE;
+ if (!check_timeout (socket, error))
+ return FALSE;
+
if (!g_socket_get_option (socket, SOL_SOCKET, SO_ERROR, &value, error))
{
g_prefix_error (error, _("Unable to get pending error: "));
@@ -2595,6 +2608,9 @@ g_socket_receive_with_blocking (GSocket *socket,
if (!check_socket (socket, error))
return -1;
+ if (!check_timeout (socket, error))
+ return -1;
+
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return -1;
@@ -2770,6 +2786,9 @@ g_socket_send_with_blocking (GSocket *socket,
if (!check_socket (socket, error))
return -1;
+ if (!check_timeout (socket, error))
+ return -1;
+
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return -1;
@@ -3751,6 +3770,9 @@ g_socket_send_message (GSocket *socket,
if (!check_socket (socket, error))
return -1;
+ if (!check_timeout (socket, error))
+ return -1;
+
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return -1;
@@ -4127,6 +4149,9 @@ g_socket_receive_message (GSocket *socket,
if (!check_socket (socket, error))
return -1;
+ if (!check_timeout (socket, error))
+ return -1;
+
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return -1;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]