2009年1月 9日

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

** 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


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




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