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
/* 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);
}