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:
Dan Winship 2011-07-24 14:52:03 -04:00
parent b8a0475e7a
commit aefda965f6

View File

@ -1607,7 +1607,7 @@ g_socket_accept (GSocket *socket,
* 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
* 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().
*
* Returns: %TRUE if connected, %FALSE on error.
@ -1727,6 +1727,8 @@ g_socket_check_connect_result (GSocket *socket,
}
return FALSE;
}
socket->priv->connected = TRUE;
return TRUE;
}