BIO socket connect failure was not handled correctly.

The state was always set to BIO_CONN_S_OK.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Davide Galassi 2016-04-18 15:48:27 +02:00 committed by Richard Levitte
parent 098a23828f
commit a043d0b91d

View file

@ -198,7 +198,7 @@ static int conn_state(BIO *b, BIO_CONNECT *c)
ret = BIO_connect(b->num, BIO_ADDRINFO_address(c->addr_iter),
BIO_SOCK_KEEPALIVE | c->connect_mode);
b->retry_reason = 0;
if (ret < 0) {
if (ret == 0) {
if (BIO_sock_should_retry(ret)) {
BIO_set_retry_special(b);
c->state = BIO_CONN_S_BLOCKED_CONNECT;