Loading include/util_filter.h +20 −0 Changes for include/util_filter.h: 20 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -314,6 +314,26 @@ AP_DECLARE(apr_status_t) ap_get_brigade(ap_filter_t *filter, AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket); /** * Pass the current bucket brigade down to the next filter on the filter * stack checking for filter errors. The filter returns an apr_status_t value. * Returns ::OK if the brigade is successfully passed * ::AP_FILTER_ERROR on a filter error * ::HTTP_INTERNAL_SERVER_ERROR on all other errors * @param r The request rec * @param bucket The current bucket brigade * @param msg Optional error msg; if NULL defaults to "ap_pass_brigade returned" * * @remark Ownership of the brigade is retained by the caller. On return, * the contents of the brigade are UNDEFINED, and the caller must * either call apr_brigade_cleanup or apr_brigade_destroy on * the brigade. */ AP_DECLARE(apr_status_t) ap_pass_brigade_fchk(request_rec *r, apr_bucket_brigade *bucket, const char *msg); /** * This function is used to register an input filter with the system. * After this registration is performed, then a filter may be added Loading server/util_filter.c +27 −0 Changes for server/util_filter.c: 27 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -535,6 +535,33 @@ AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *next, return AP_NOBODY_WROTE; } /* Pass the buckets to the next filter in the filter stack * checking return status for filter errors. * returns: OK if ap_pass_brigade returns APR_SUCCESS * AP_FILTER_ERROR if filter error exists * HTTP_INTERNAL_SERVER_ERROR for all other cases * logged with optional errmsg */ AP_DECLARE(apr_status_t) ap_pass_brigade_fchk(request_rec *r, apr_bucket_brigade *bb, const char *errmsg) { apr_status_t rv; if (!errmsg) errmsg = "ap_pass_brigade returned"; rv = ap_pass_brigade(r->output_filters, bb); if (rv != APR_SUCCESS) { if (rv != AP_FILTER_ERROR) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, "%s %d", errmsg, rv); return HTTP_INTERNAL_SERVER_ERROR; } return AP_FILTER_ERROR; } return OK; } AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f, apr_bucket_brigade **saveto, apr_bucket_brigade **b, apr_pool_t *p) Loading Loading
include/util_filter.h +20 −0 Changes for include/util_filter.h: 20 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -314,6 +314,26 @@ AP_DECLARE(apr_status_t) ap_get_brigade(ap_filter_t *filter, AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket); /** * Pass the current bucket brigade down to the next filter on the filter * stack checking for filter errors. The filter returns an apr_status_t value. * Returns ::OK if the brigade is successfully passed * ::AP_FILTER_ERROR on a filter error * ::HTTP_INTERNAL_SERVER_ERROR on all other errors * @param r The request rec * @param bucket The current bucket brigade * @param msg Optional error msg; if NULL defaults to "ap_pass_brigade returned" * * @remark Ownership of the brigade is retained by the caller. On return, * the contents of the brigade are UNDEFINED, and the caller must * either call apr_brigade_cleanup or apr_brigade_destroy on * the brigade. */ AP_DECLARE(apr_status_t) ap_pass_brigade_fchk(request_rec *r, apr_bucket_brigade *bucket, const char *msg); /** * This function is used to register an input filter with the system. * After this registration is performed, then a filter may be added Loading
server/util_filter.c +27 −0 Changes for server/util_filter.c: 27 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -535,6 +535,33 @@ AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *next, return AP_NOBODY_WROTE; } /* Pass the buckets to the next filter in the filter stack * checking return status for filter errors. * returns: OK if ap_pass_brigade returns APR_SUCCESS * AP_FILTER_ERROR if filter error exists * HTTP_INTERNAL_SERVER_ERROR for all other cases * logged with optional errmsg */ AP_DECLARE(apr_status_t) ap_pass_brigade_fchk(request_rec *r, apr_bucket_brigade *bb, const char *errmsg) { apr_status_t rv; if (!errmsg) errmsg = "ap_pass_brigade returned"; rv = ap_pass_brigade(r->output_filters, bb); if (rv != APR_SUCCESS) { if (rv != AP_FILTER_ERROR) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, "%s %d", errmsg, rv); return HTTP_INTERNAL_SERVER_ERROR; } return AP_FILTER_ERROR; } return OK; } AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f, apr_bucket_brigade **saveto, apr_bucket_brigade **b, apr_pool_t *p) Loading