You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
1.1 KiB
27 lines
1.1 KiB
diff --git a/support/ab.c b/support/ab.c |
|
index bf76406..80c1b74 100644 |
|
--- a/support/ab.c |
|
+++ b/support/ab.c |
|
@@ -1346,11 +1346,21 @@ static void read_connection(struct connection * c) |
|
&& good == 0) { |
|
return; |
|
} |
|
+ 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 (%d) - closing connection\n", scode); |
|
+ BIO_printf(bio_err, "SSL read failed (%d) - closing connection\n", scode); |
|
ERR_print_errors(bio_err); |
|
close_connection(c); |
|
}
|
|
|