mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-13 04:34:04 +02:00
GSocket: fix connected state after async connect
socket->priv->connected was only being set if g_socket_connect() succeeded right away; in the case where it returns G_IO_ERROR_PENDING, it never got set. Fix that by having g_socket_check_connect_result() set it on success.
This commit is contained in:
@@ -1607,7 +1607,7 @@ g_socket_accept (GSocket *socket,
|
|||||||
* If the connect call needs to do network I/O it will block, unless
|
* If the connect call needs to do network I/O it will block, unless
|
||||||
* non-blocking I/O is enabled. Then %G_IO_ERROR_PENDING is returned
|
* non-blocking I/O is enabled. Then %G_IO_ERROR_PENDING is returned
|
||||||
* and the user can be notified of the connection finishing by waiting
|
* and the user can be notified of the connection finishing by waiting
|
||||||
* for the G_IO_OUT condition. The result of the connection can then be
|
* for the G_IO_OUT condition. The result of the connection must then be
|
||||||
* checked with g_socket_check_connect_result().
|
* checked with g_socket_check_connect_result().
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if connected, %FALSE on error.
|
* Returns: %TRUE if connected, %FALSE on error.
|
||||||
@@ -1727,6 +1727,8 @@ g_socket_check_connect_result (GSocket *socket,
|
|||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
socket->priv->connected = TRUE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user