static apr_status_t hogehoge_filter(ap_filter_t *f, apr_bucket_brigade *bb) { request_rec *r = f->r; my_ctx *ctx = f->ctx; いくつかのフィルタのコードを読んでみると、どうも一回のフィルタの呼び出しではストリームが終わらないことがあるらしい。だから、ステータスをf->ctxに保持する。 ctxはリクエストごとに初期化されるように見える。だから if (!ctx) { 〜 }で存在チェック ctxがなかったら、ctxを生成して、ストリームが始まったものとして処理をする ctxがあったら、ストリームの途中として処理をする ctxはApacheがてきとーに破棄してくれてるのかな?