2008年12月17日

[Apache-Users 7239] Re:リクエストから、POSTパラメータを取り出す

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

示唆に富む回答ありがとうございます。
入力フィルターに実行させることを、本日のお題にして取り組みます。

入力フィルターで覗くと、後続のフックがリクエストを読めなくなる、
という恐れはないですよね?

> log_transactionはリクエストが読み込み終わった後に呼ばれるので、
> その中でリクエストを読もうとしたってだめです。
> POSTデータをログに書き出すと勝手に解釈してコメントすると、
> 入力フィルターでリクエストを覗いて、モジュールのどこかに保持しておいて、
> log_transactionでログに書き出せばいいと思いますよ。
>
> On Tue, 16 Dec 2008 12:00:29 +0900
> apache-users@xxxxx wrote:
>
> > ** Apache ユーザーズメーリングリスト **
> > ** 注意:このメールへの返信は Apache-Users へ行きます **
> >
> > こんにちは。
> > Apacheモジュールほぼ初心者です。
> >
> > リクエストから、POSTパラメータを取り出す
> >
> > という簡単な?ことができずに困っています。
> > CentOS 5.x
> > Apache 2.0
> > です。
> >
> > https://www.codeblog.org/blog/inoue/200612.html
> > などを参考に試行錯誤して、以下のようなコーディングに至っていますが
> > 何がおきているのか分かりません。。。
> > =================================================================
> > static int util_read(request_rec *r){
> > int rc = OK;
> >
> > if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_ERROR)) != OK) {
> > return rc;
> > }
> >
> > if (ap_should_client_block(r)) {
> > char buff[HUGE_STRING_LEN];
> > int rsize, len_read, rpos=0;
> > long length = r->remaining;
> > const char **rbuf;
> > *rbuf = (char*)apr_palloc(r->pool, length + 1);
> >
> > while ((len_read =
> > ap_get_client_block(r, buff, sizeof(buff))) > 0) {
> >
> > if ((rpos + len_read) > length) {
> > rsize = length - rpos;
> > }
> > else {
> > rsize = len_read;
> > }
> > memcpy((char*)*rbuf + rpos, buff, rsize);
> > rpos += rsize;
> > }
> >
> > fprintf(stderr, "len=%d; %s\n", rc, rbuf);
> > }
> >
> > return rc;
> > }
> >
> >
> > static int hoge_loging(request_rec *r){
> > util_read(r);
> > }
> >
> >
> > static void hoge_register_hooks(apr_pool_t *p){
> > ap_hook_log_transaction(hoge_loging, NULL, NULL, APR_HOOK_MIDDLE);
> > }
> >
> > module AP_MODULE_DECLARE_DATA hoge_module = {
> > STANDARD20_MODULE_STUFF,
> > create_dir_config, /* create per-dir config structures */
> > NULL, /* merge per-dir config structures */
> > NULL, /* create per-server config structures */
> > NULL, /* merge per-server config structures */
> > NULL, /* table of config file commands */
> > hoge_register_hooks /* register hooks */
> > };
> > =================================================================
> >
> > ログを見ると、こんな風になってます。
> > len=0; ?
> > len=0; (
> >
> > [Tue Dec 16 11:43:50 2008] [notice] child pid 21487 exit signal Aborted (6)
> >
> >
> >
> > お手本となるようなソースをご提供頂けないでしょうか。
> > すみません。。

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


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




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