-mod_proxy changes for httpd 2.0.18-dev
+mod_proxy changes for httpd 2.0.20-dev
+
+ *) Fix abort code path in proxy_http.c, similar to FTP fix.
+ [Chuck Murcko <chuck@topsail.org>]
+
+ *) Fix FTP ABOR command execution path.
+ [Victor Orlikowski <v.j.orlikowski@gte.net>]
*) FTP return code variable cleanup; fixed problem in login
+ [Chuck Murcko <chuck@topsail.org>]
*) Get PORT working again in the ftp proxy.
[Victor Orlikowski <v.j.orlikowski@gte.net>]
[Chuck Murcko <chuck@topsail.org>]
[Victor Orlikowski <v.j.orlikowski@gte.net>]
+mod_proxy changes for httpd 2.0.19
+
*) Reverse previous patch since the core reverted.
[Chuck Murcko <chuck@topsail.org>]
*) Fix warnings about byte count type on Darwin (connect handler).
[Chuck Murcko <chuck@topsail.org>]
+mod_proxy changes for httpd 2.0.18
+
*) IPV6 EPSV support for IPV6 in FTP proxy.
[Graham Leggett <minfrin@sharp.fm>]
*) Converted send_dir() to ap_proxy_send_dir_filter() in proxy_ftp.c.
[Graham Leggett <minfrin@sharp.fm>]
+mod_proxy changes for httpd 2.0.17
+
*) Major rework of ap_proxy_ftp_handler() to use filters (begone foul
BUFF!!!). It compiles, but is untested, and the build environment needs
to be fixed to include proxy_ftp.c.
would not trigger an IP address check with ProxyBlock.
[Graham Leggett <minfrin@sharp.fm>]
+mod_proxy changes for httpd 2.0.16
+
*) Fixed ProxyBlock bugs with ap_proxy_http_handler() and
ap_proxy_connect_handler().
[Graham Leggett <minfrin@sharp.fm>]
the directly following proxy keepalive request to fail.
[Graham Leggett <minfrin@sharp.fm>]
+mod_proxy changes for httpd 2.0.15
+
*) Added support for downstream keepalives in mod_proxy.
[Graham Leggett <minfrin@sharp.fm>]
- Some cosmetic fixes and commenting.
[Graham Leggett <minfrin@sharp.fm>]
-mod_proxy changes for 2.0.14 alpha
+mod_proxy changes for httpd 2.0.14
*) removed ProxyNoCache and ProxyCacheForceCompletion config directives,
since we no longer directly cache from this module
* after the time of the response.
* Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds )
*/
- for (i=0 ; buffer[i] && !isdigit(buffer[i]); i++);
+ for (i = 0; buffer[i] && !isdigit(buffer[i]); i++);
if (buffer[i]) {
ap_table_add(r->headers_out, "Retry-After", apr_psprintf(p, "%lu", 60*atol(buffer+i)));
}
/* set request; "path" holds last path component */
len = decodeenc(path);
- /* TM - if len == 0 then it must be a directory (you can't RETR anything) */
+ /* TM - if len == 0 then it must be a directory (you can't RETR nothing) */
if (len == 0) {
parms = "d";
ap_pass_brigade(r->output_filters, bb);
break;
}
- ap_pass_brigade(r->output_filters, bb);
- apr_brigade_cleanup(bb);
+ if (ap_pass_brigade(r->output_filters, bb) != APR_SUCCESS) {
+ /* Ack! Phbtt! Die! User aborted! */
+ apr_brigade_cleanup(bb);
+ close = 1; /* this causes socket close below */
+ break;
+ }
+ apr_brigade_cleanup(bb);
}
ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, 0, r->server,
"proxy: end body send");