Fix BIO_set_nbio_accept()

The code that implements this control would work when enabling nbio,
but the disabling code needed fixing.

Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
Richard Levitte 2016-04-28 17:39:26 +02:00
parent b3bd3d5af8
commit 68423b1461

View file

@ -474,16 +474,17 @@ static long acpt_ctrl(BIO *b, int cmd, long num, void *ptr)
data->param_serv = BUF_strdup(ptr);
b->init = 1;
} else if (num == 2) {
if (ptr != NULL)
data->bind_mode |= BIO_SOCK_NONBLOCK;
else
data->bind_mode &= ~BIO_SOCK_NONBLOCK;
data->bind_mode |= BIO_SOCK_NONBLOCK;
} else if (num == 3) {
BIO_free(data->bio_chain);
data->bio_chain = (BIO *)ptr;
} else if (num == 4) {
data->accept_family = *(int *)ptr;
}
} else {
if (num == 2) {
data->bind_mode &= ~BIO_SOCK_NONBLOCK;
}
}
break;
case BIO_C_SET_NBIO: