Hi, I try to understand an request filter (input). Maybe you can help me to understand the processes:
The POST size of a request is larger than 8192 bytes, so the request will be split up into two pieces. I need both parts to process the request within the filter. There are further filters, which process the request too. My filter calls ap_get_brigade() and tries to get the bytes. The brigade will be stored within a context structure of the ap_filter_t. On the first call of my filter it gets only 8192 bytes and no EOS. As the next, I'm looking for EOS, if there isn't one, I try to store the buckets with apr_bucket_setaside(b, f->r->pool); and return from the filter with APR_SUCCESS. I think, there should be a further call of my filter hook with the second chunk. There I would concat the stored brigade with the new one. If there isn't an EOS too, store the whole brigade again. But is there an EOS, I can process the request. What I have to send on the first call to the next filter (nothing, flush)? At the moment I get an Sending error response: The request contained fewer content data than specified by the content-length header within the error_log and the client gets a 404. So it seems, that a filter should be informed, that my filter waits for further chunks and passes the chunks together to the next filter after the second call. Any ideas? Thank you. Andre