mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-03 14:42:10 +01:00
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
This commit is contained in:
parent
1e8c4d2a6e
commit
0c65f7e45a
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user