struct ap_rr_xlate *rrx;
#endif /*APACHE_XLATE*/
- /** A list of filters to be used for this request
+ /** A list of output filters to be used for this request
* @defvar ap_filter_t *filters */
- struct ap_filter_t *filters;
+ struct ap_filter_t *output_filters;
+ /** A flag to determine if the eos bucket has been sent yet
+ * @defvar int eos_sent */
int eos_sent;
+ /** A list of output filters to be used for this request
+ * @defvar ap_filter_t *filters */
+ struct ap_filter_t *input_filters;
/* Things placed at the end of the record to avoid breaking binary
* compatibility. It would be nice to remember to reorder the entire
AP_BRIGADE_INSERT_TAIL(bb, b);
b = ap_bucket_create_eos();
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
}
log_script_err(r, script_err);
AP_BRIGADE_INSERT_TAIL(bb, b);
b = ap_bucket_create_eos();
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
}
return OK; /* NOT r->status, even if it has changed. */
AP_BRIGADE_INSERT_TAIL(bb, b);
b = ap_bucket_create_eos();
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
}
}
AP_BRIGADE_INSERT_TAIL(bb, b);
b = ap_bucket_create_eos();
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
}
apr_close(tempsock);
conf->add_default_charset = ADD_DEFAULT_CHARSET_UNSET;
conf->add_default_charset_name = DEFAULT_ADD_DEFAULT_CHARSET_NAME;
- conf->filters = apr_make_array(a, 40, sizeof(void *));
+ conf->filters = apr_make_array(a, 2, sizeof(void *));
return (void *)conf;
}
bb = ap_brigade_create(r->pool);
b = ap_bucket_create_eos();
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
}
void ap_finalize_sub_req_protocol(request_rec *sub)
bb = ap_brigade_create(r->pool);
b = ap_bucket_create_mmap(mm, 0, mm->size);
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
return mm->size; /* XXX - change API to report apr_status_t? */
}
bb = ap_brigade_create(r->pool);
b = ap_bucket_create_transient(&c2, 1);
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
return c;
}
bb = ap_brigade_create(r->pool);
b = ap_bucket_create_transient(str, len);
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
return len;
}
bb = ap_brigade_create(r->pool);
b = ap_bucket_create_transient(buf, nbyte);
AP_BRIGADE_INSERT_TAIL(bb, b);
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
return nbyte;
}
bb = ap_brigade_create(r->pool);
written = ap_brigade_vprintf(bb, fmt, va);
if (written != 0)
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
return written;
}
written = ap_brigade_vputstrs(bb, va);
va_end(va);
if (written != 0)
- ap_pass_brigade(r->filters, bb);
+ ap_pass_brigade(r->output_filters, bb);
return written;
}
ap_copy_method_list(rnew->allowed_methods, r->allowed_methods);
/* start with the same set of output filters */
- rnew->filters = r->filters;
+ rnew->output_filters = r->output_filters;
ap_set_sub_req_protocol(rnew, r);
ap_copy_method_list(rnew->allowed_methods, r->allowed_methods);
/* start with the same set of output filters */
- rnew->filters = r->filters;
+ rnew->output_filters = r->output_filters;
ap_set_sub_req_protocol(rnew, r);
fdir = ap_make_dirstr_parent(rnew->pool, r->filename);
f->ctx = ctx;
f->r = r;
- if (INSERT_BEFORE(f, r->filters)) {
- f->next = r->filters;
- r->filters = f;
+ if (INSERT_BEFORE(f, r->output_filters)) {
+ f->next = r->output_filters;
+ r->output_filters = f;
}
else {
- ap_filter_t *fscan = r->filters;
+ ap_filter_t *fscan = r->output_filters;
while (!INSERT_BEFORE(f, fscan->next))
fscan = fscan->next;
f->next = fscan->next;
/* Pass the buckets to the next filter in the filter stack. If the
* current filter is a handler, we should get NULL passed in instead of
* the current filter. At that point, we can just call the first filter in
- * the stack, or r->filters.
+ * the stack, or r->output_filters.
*/
API_EXPORT(apr_status_t) ap_pass_brigade(ap_filter_t *next, ap_bucket_brigade *bb)
{