From: Rich Salz Date: Sat, 2 May 2015 14:44:31 +0000 (-0400) Subject: RT832: Use REUSEADDR in ocsp responder X-Git-Tag: OpenSSL_1_1_0-pre1~1042 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=366e2a60b2fcc727b061f1459343245476ad6c3b RT832: Use REUSEADDR in ocsp responder I also re-ordered some of #ifdef's. Reviewed-by: Matt Caswell --- diff --git a/apps/ocsp.c b/apps/ocsp.c index 4c3aa39410..5d3e646f81 100644 --- a/apps/ocsp.c +++ b/apps/ocsp.c @@ -1010,22 +1010,27 @@ static BIO *init_responder(const char *port) { BIO *acbio = NULL, *bufbio = NULL; - bufbio = BIO_new(BIO_f_buffer()); - if (!bufbio) - goto err; -# ifndef OPENSSL_NO_SOCK - acbio = BIO_new_accept(port); -# else +# ifdef OPENSSL_NO_SOCK BIO_printf(bio_err, "Error setting up accept BIO - sockets not supported.\n"); + return NULL; # endif - if (!acbio) + bufbio = BIO_new(BIO_f_buffer()); + if (!bufbio) goto err; + 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; }