Index: support/ab.c
===================================================================
--- support/ab.c (revision 1370289)
+++ support/ab.c (working copy)
@@ -1347,11 +1347,21 @@
good++;
close_connection(c);
}
+ else if (scode == SSL_ERROR_SYSCALL
+ && status == 0
+ && c->read != 0) {
+ /* connection closed, but in violation of the protocol, after
+ * some data has already been read; this commonly happens, so
+ * let the length check catch any response errors
+ */
+ good++;
+ close_connection(c);
+ }
else if (scode != SSL_ERROR_WANT_WRITE
&& scode != SSL_ERROR_WANT_READ) {
/* some fatal error: */
c->read = 0;
- BIO_printf(bio_err, "SSL read failed - closing connection\n");
+ BIO_printf(bio_err, "SSL read failed (%d) - closing
connection\n", scode);
ERR_print_errors(bio_err);
close_connection(c);
}
Without it I get something like this:
...
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
SSL read failed - closing connection
Completed 200 requests
Finished 200 requests
Server Software:
Server Hostname: 127.0.0.1
Server Port: 8443
Document Path: /manual/mod/mod_rewrite.html.en
Document Length: 0 bytes <--------
The server is trunk mod_ssl using standard shutdown.
--
Born in Roswell... married an alien...
http://emptyhammock.com/