2008-01-30から1日間の記事一覧
バケットを詰め替える場合 while (!APR_BRIGADE_EMPTY(bb)) { apr_bucket *e = APR_BRIGADE_FIRST(bb); if (APR_BUCKET_IS_EOS(e)) { // APR_BUCKET_IS_EOCはなくなったよう // ストリームの終端 APR_BUCKET_REMOVE(e); APR_BRIGADE_INSERT_TAIL(bbout, e); …
バケット(ブリッジではない)の分割にはapr_bucket_split(e)を使う。 apr_bucket_split(a)の実体(のひとつ?)。 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_split(apr_bucket *a, apr_size_t point) { apr_bucket *b; if (point > a->length) { …
static apr_status_t hogehoge_filter(ap_filter_t *f, apr_bucket_brigade *bb) { request_rec *r = f->r; my_ctx *ctx = f->ctx; いくつかのフィルタのコードを読んでみると、どうも一回のフィルタの呼び出しではストリームが終わらないことがあるらしい。…
http://www.cs.virginia.edu/~jcw5q/talks/apache/bucketbrigades.ac2002.ppt
あとで詳しく書きます。