rktio: fix success check for connect
This commit is contained in:
parent
54f16758a5
commit
68f55f5b85
|
@ -1238,12 +1238,13 @@ rktio_fd_t *rktio_connect_finish(rktio_t *rktio, rktio_connect_t *conn)
|
||||||
if (conn->inprogress) {
|
if (conn->inprogress) {
|
||||||
/* Check whether connect succeeded, or get error: */
|
/* Check whether connect succeeded, or get error: */
|
||||||
int errid;
|
int errid;
|
||||||
rktio_sockopt_len_t so_len = sizeof(errid);
|
unsigned status;
|
||||||
|
rktio_sockopt_len_t so_len = sizeof(status);
|
||||||
rktio_socket_t s = rktio_fd_socket(rktio, rfd);
|
rktio_socket_t s = rktio_fd_socket(rktio, rfd);
|
||||||
if (getsockopt(s, SOL_SOCKET, SO_ERROR, (void *)&errid, &so_len) != 0) {
|
if (getsockopt(s, SOL_SOCKET, SO_ERROR, (void *)&status, &so_len) != 0) {
|
||||||
errid = SOCK_ERRNO();
|
errid = SOCK_ERRNO();
|
||||||
} else
|
} else
|
||||||
errid = 0;
|
errid = status;
|
||||||
#ifdef RKTIO_SYSTEM_WINDOWS
|
#ifdef RKTIO_SYSTEM_WINDOWS
|
||||||
if (!rktio->windows_nt_or_later && !errid) {
|
if (!rktio->windows_nt_or_later && !errid) {
|
||||||
/* getsockopt() seems not to work in Windows 95, so use the
|
/* getsockopt() seems not to work in Windows 95, so use the
|
||||||
|
|
Loading…
Reference in New Issue
Block a user