diff options
author | Stefan Fritsch <sf@sfritsch.de> | 2011-12-27 19:43:09 +0100 |
---|---|---|
committer | Stefan Fritsch <sf@sfritsch.de> | 2011-12-27 19:43:09 +0100 |
commit | 5b56d06a01a150fc9685e6f913774be3f9deb49f (patch) | |
tree | 9fbfbe0313b782941f1c2c4d3cb5203817144108 /modules/proxy/mod_proxy_http.c | |
parent | 498ea95018b369e62646a98c7d7d5413b56e170c (diff) | |
download | apache2-5b56d06a01a150fc9685e6f913774be3f9deb49f.tar.gz |
Upstream tarball 2.2.19upstream/2.2.19
Diffstat (limited to 'modules/proxy/mod_proxy_http.c')
-rw-r--r-- | modules/proxy/mod_proxy_http.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c index e0a8ae11..19c82f2c 100644 --- a/modules/proxy/mod_proxy_http.c +++ b/modules/proxy/mod_proxy_http.c @@ -271,10 +271,18 @@ static int pass_brigade(apr_bucket_alloc_t *bucket_alloc, ap_log_error(APLOG_MARK, APLOG_ERR, status, r->server, "proxy: pass request body failed to %pI (%s)", conn->addr, conn->hostname); - if (origin->aborted) { + if (origin->aborted) { + const char *ssl_note; + + if (((ssl_note = apr_table_get(origin->notes, "SSL_connect_rv")) + != NULL) && (strcmp(ssl_note, "err") == 0)) { + return ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR, + "Error during SSL Handshake with" + " remote server"); + } return APR_STATUS_IS_TIMEUP(status) ? HTTP_GATEWAY_TIME_OUT : HTTP_BAD_GATEWAY; } - else { + else { return HTTP_BAD_REQUEST; } } |