There are a couple of places, in trunk only, where the macro SUSPENDED
is checked against a handlers return code.
1 45 include/util_filter.h <<GLOBAL>>
#define AP_FILTER_ERROR -3
1 460 include/httpd.h <<GLOBAL>>
#define SUSPENDED -3
Note that AP_FILTER_ERROR can be returned by a handler that calls
ap_discard_request_body(), in the same contexts that checking against
SUSPENDED is intersting
I was looking to add an additional clause to the IGNORE_HTTP_RANGE
checking in ap_invoke_handler, but found in trunk it wasn't necessary
because of the overlap:
Index: server/config.c
===================================================================
--- server/config.c (revision 713453)
+++ server/config.c (working copy)
@@ -382,6 +382,7 @@
"handler \"%s\" not found for: %s", r->handler, r->filename);
}
if ((result != OK) && (result != DONE) && (result != DECLINED) &&
(result != SUSPENDED)
+ && (result != AP_FILTER_ERROR) /* no-op on trunk due to SUSPENDED */
&& !ap_is_HTTP_VALID_RESPONSE(result)) {
/* If a module is deliberately returning something else
* (request_rec in non-HTTP or proprietary extension?)
(ap_die ignores AP_FILTER_ERROR, but not when it's been transformed
from -3 to 500 by the code above -- LimitRequestBody with a custom
ErrorDocument is busted on 2.2.x due to this)
--
Eric Covener
[EMAIL PROTECTED]