From b58942794119a3167a0e45a7bc2dd67512294f52 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 17 Jul 2006 18:52:51 +0000 Subject: WIN32 fixes signed/unsigned issues and slightly socket semantics. --- apps/ocsp.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'apps/ocsp.c') diff --git a/apps/ocsp.c b/apps/ocsp.c index 0369b2636c..955c400431 100644 --- a/apps/ocsp.c +++ b/apps/ocsp.c @@ -1270,8 +1270,22 @@ static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path, goto err; } - ctx = OCSP_sendreq_new(cbio, path, req, -1); + if (rv <= 0) + { + FD_ZERO(&confds); + openssl_fdset(fd, &confds); + tv.tv_usec = 0; + tv.tv_sec = req_timeout; + rv = select(fd + 1, NULL, (void *)&confds, NULL, &tv); + if (rv == 0) + { + BIO_puts(err, "Timeout on connect\n"); + return NULL; + } + } + + ctx = OCSP_sendreq_new(cbio, path, req, -1); if (!ctx) return NULL; @@ -1281,10 +1295,10 @@ static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path, if (rv != -1) break; FD_ZERO(&confds); - FD_SET(fd, &confds); + openssl_fdset(fd, &confds); tv.tv_usec = 0; tv.tv_sec = req_timeout; - if (BIO_should_read(cbio) || BIO_should_io_special(cbio)) + if (BIO_should_read(cbio)) rv = select(fd + 1, (void *)&confds, NULL, NULL, &tv); else if (BIO_should_write(cbio)) rv = select(fd + 1, NULL, (void *)&confds, NULL, &tv); @@ -1305,7 +1319,6 @@ static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path, } } - err: OCSP_REQ_CTX_free(ctx); -- cgit v1.2.3