RT832: Use REUSEADDR in ocsp responder I also re-ordered some of #ifdef's. Reviewed-by: Matt Caswell <matt@openssl.org>
diff --git a/apps/ocsp.c b/apps/ocsp.c index 4c3aa39..5d3e646 100644 --- a/apps/ocsp.c +++ b/apps/ocsp.c
@@ -1010,22 +1010,27 @@ { BIO *acbio = NULL, *bufbio = NULL; +# ifdef OPENSSL_NO_SOCK + BIO_printf(bio_err, + "Error setting up accept BIO - sockets not supported.\n"); + return NULL; +# endif bufbio = BIO_new(BIO_f_buffer()); if (!bufbio) goto err; -# ifndef OPENSSL_NO_SOCK - acbio = BIO_new_accept(port); -# else - BIO_printf(bio_err, - "Error setting up accept BIO - sockets not supported.\n"); -# endif - if (!acbio) + acbio = BIO_new(BIO_s_accept()); + if (acbio == NULL + || BIO_set_bind_mode(acbio, BIO_BIND_REUSEADDR) < 0 + || BIO_set_accept_port(acbio, port) < 0) { + BIO_printf(bio_err, "Error setting up accept BIO\n"); + ERR_print_errors(bio_err); goto err; + } + BIO_set_accept_bios(acbio, bufbio); bufbio = NULL; - if (BIO_do_accept(acbio) <= 0) { - BIO_printf(bio_err, "Error setting up accept BIO\n"); + BIO_printf(bio_err, "Error starting accept\n"); ERR_print_errors(bio_err); goto err; }