From 7f9a011ae3f8d091d370b32699699016e4723067 Mon Sep 17 00:00:00 2001 From: Martin Kraemer Date: Tue, 29 Jun 2004 14:00:07 +0000 Subject: [PATCH] *** Patch for EBCDIC-host and HTTP/0.9 responses only *** In dealing with a HTTP/0.9 response to a proxy request, we have pre-read data that is not an HTTP header. At this point of processing, we don't know yet whether the data is going to be interpreted an binary or not. (In fact, we may never find out because HTTP/0.9 lacks the Content-Type headers; only by configuring mod_charset_lite can we control the conversion). But mod_charset_lite will get control only later, so it cannot decide on the conversion of the current buffer full of data. => This is an extreme and rare situation normally. So, for catching the most obvious problem (talking not to a HTTP server but to some other protocol), the best guess here is to treat the buffer as "text/*" (to make error messages readable). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@104081 13f79535-47bb-0310-9956-ffa450edef68 --- modules/proxy/proxy_http.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/proxy/proxy_http.c b/modules/proxy/proxy_http.c index 471a7b8dc3..e54f272499 100644 --- a/modules/proxy/proxy_http.c +++ b/modules/proxy/proxy_http.c @@ -1190,6 +1190,16 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r, /* Is it an HTTP/0.9 response? If so, send the extra data */ if (backasswards) { apr_ssize_t cntr = len; + /*@@@FIXME: + * At this point in response processing of a 0.9 response, + * we don't know yet whether data is binary or not. + * mod_charset_lite will get control later on, so it cannot + * decide on the conversion of this buffer full of data. + * However, chances are that we are not really talking to an + * HTTP/0.9 server, but to some different protocol, therefore + * the best guess IMHO is to always treat the buffer as "text/*": + */ + ap_xlate_proto_to_ascii(buffer, len); e = apr_bucket_heap_create(buffer, cntr, NULL, c->bucket_alloc); APR_BRIGADE_INSERT_TAIL(bb, e); } -- 2.40.0