mirror of https://github.com/openssl/openssl
Fix socket descriptor checks on Windows
Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24035)
This commit is contained in:
parent
15eb7b6875
commit
c89baf8710
|
@ -965,8 +965,12 @@ static int bio_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds)
|
|||
return 1;
|
||||
|
||||
#ifndef OPENSSL_NO_SOCK
|
||||
if (BIO_get_fd(bio, &fd) > 0 && fd < FD_SETSIZE)
|
||||
return BIO_socket_wait(fd, BIO_should_read(bio), max_time);
|
||||
if (BIO_get_fd(bio, &fd) > 0) {
|
||||
int ret = BIO_socket_wait(fd, BIO_should_read(bio), max_time);
|
||||
|
||||
if (ret != -1)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
/* fall back to polling since no sockets are available */
|
||||
|
||||
|
|
|
@ -435,7 +435,11 @@ int BIO_socket_wait(int fd, int for_read, time_t max_time)
|
|||
struct timeval tv;
|
||||
time_t now;
|
||||
|
||||
#ifdef _WIN32
|
||||
if ((SOCKET)fd == INVALID_SOCKET)
|
||||
#else
|
||||
if (fd < 0 || fd >= FD_SETSIZE)
|
||||
#endif
|
||||
return -1;
|
||||
if (max_time == 0)
|
||||
return 1;
|
||||
|
|
Loading…
Reference in New Issue