2009年1月16日

[Apache-Users 7263] Re:[apachemljp] output_filterの中で、出力データを書き換えたい

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

岡本です。
output_filterの書き方は以下のページが参考になると思います。
http://httpd.apache.org/docs/trunk/developer/output-filters.html

apache-users@xxxxx さんは書きました:

> ** Apache ユーザーズメーリングリスト **
> ** 注意:このメールへの返信は Apache-Users へ行きます **
>
> output_filterの中で、出力データを書き換えたいと思います。
> (1)bucket_brigade の中の bucket を入れ替えたりすればできる
> (2)bucket_brigade を新しく作成し、bucket_brigade を入れ替える
> (3)その他
> どういう方法が考えられ、一番シンプルでしょうか。
>
> 恐らく(2)だと思うのですが、このように簡単にはいきませんでした。
>
>
> static int hoge_output_filter(ap_filter_t *f,
> apr_bucket_brigade *bb)
> {
>
> apr_bucket *b;
> char *cnv_text = apr_pcalloc(r->pool, HUGE_STRING_LEN);
>
> (中略:cnv_textに、変更したいHTMLソースをいれています。)
>
> apr_bucket_brigade* out_bb = apr_brigade_create(r->pool, f->c->bucket_alloc);
> apr_bucket *nb = apr_bucket_pool_create(cnv_text, sizeof(cnv_text), r->pool, out_bb->bucket_alloc);
>
> APR_BRIGADE_INSERT_TAIL(out_bb, nb);
> b = apr_bucket_eos_create(f->c->bucket_alloc);
> APR_BRIGADE_INSERT_TAIL(out_bb, b);
> apr_brigade_destroy(bb);
> return ap_pass_brigade(f->next, out_bb);
> }
>
>
> --
> 入退会・変更・配送一時停止は以下へ
> http://mm.apache.jp/mailman/listinfo/apache-users
>

--
入退会・変更・配送一時停止は以下へ
http://mm.apache.jp/mailman/listinfo/apache-users


投稿者 xml-rpc : 2009年1月16日 23:19
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/81031
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。