>>415 乙です.
>たぶん、HEADしてGETするとか、そういう感じなのかしら。
そのように2回サブリクエストを実行する形だと非効率になりそうなので,
雪だるま版では lookfor() で内容取得まで一緒にやってしまった方が良さそうな気もします.
その代わり,dat ファイルを読み込んでる部分をスキップすると.
----[この関数を定義しておく]------------------------------------------
#ifdef SNOWMAN
static apr_status_t rdat_filter(ap_filter_t *f, apr_bucket_brigade *b)
{
return ap_save_brigade(f, (apr_bucket_brigade **)&f->ctx, &b, f->r->pool);
}
#endif
----[lookfor() の中]--------------------------------------------------
#ifdef SNOWMAN
int rv;
#if defined(AP_SERVER_MINORVERSION_NUMBER) && AP_SERVER_MINORVERSION_NUMBER >= 2
ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL, NULL, 0, 0};
#else
ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL};
#endif
ap_filter_t f = {&frec, NULL, NULL, r, r->connection};
char *uri = apr_pstrcat(r->pool, "/", ch2->zz_bbs, "/dat/", ch2->zz_key, ".dat", NULL);
request_rec *rdat = ap_sub_req_lookup_uri(uri, r, &f);
if (!(rv = rdat->status == HTTP_OK ? ap_run_sub_req(rdat) : rdat->status)) {
apr_brigade_pflatten(f.ctx, &ch2->BigBuffer, &ch2->zz_filesize, r->pool);
apr_brigade_destroy(f.ctx);
ch2->zz_mtime = rdat->mtime ? rdat->mtime
: apr_date_parse_http(apr_table_get(rdat->headers_out, "Last-Modified"));
}
ap_destroy_sub_req(rdat);
if (!rv) {
ch2->where = W_LIVE;
return 1;
}
#else
if(!apr_stat(&CountStat,ch2->zz_fName,APR_FINFO_MIN,r->pool)) /* found */
{
ch2->zz_filesize = CountStat.size ;
ch2->zz_mtime = CountStat.mtime ;
ch2->where = W_LIVE ;
return 1 ;
}
#endif
----[BigBuffer アロケート / dat 読み込みの部分はスキップ]-------------
#ifndef SNOWMAN
ch2->BigBuffer = apr_palloc(r->pool, ch2->zz_filesize); /* ←多分こんな形で BigBuffer 領域を確保してますよね? */
if (apr_file_open(&in,ch2->zz_fName,APR_READ,APR_OS_DEFAULT,r->pool)) {return 3011;}
apr_file_read(in, ch2->BigBuffer, &ch2->zz_filesize);
apr_file_close(in) ;
#endif
----------------------------------------------------------------------
read.cgi再開発スレ Part2
■ このスレッドは過去ログ倉庫に格納されています
418▲ ◆cZfSunOs.U
2005/12/05(月) 21:39:21ID:qOa8SuPx0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中居氏は当日の詳細語る意思「『えっ、これ性暴力?!』と感じる人多くなる」「全て聞いた」橋下徹氏が説明 ★4 [ひかり★]
- 中居氏は当日の詳細語る意思「『えっ、これ性暴力?!』と感じる人多くなる」「全て聞いた」橋下徹氏が説明 ★5 [ひかり★]
- 橋下徹氏、中居正広氏は『自分が悪いんだ』と思っていたけど.. ここにきての反論は「周りの法律家たちが『おかしいよね』って」 [ひかり★]
- 国民民主、参院比例に足立氏・山尾しおり(菅野志桜里)氏ら擁立 「批判の声勘案し公認」 [少考さん★]
- 東京一極集中の是正反対、東京都と自民党都連が協力確認 [首都圏の虎★]
- 愛知 犬山 自衛隊練習機が池に墜落 2人が搭乗 ★2 [首都圏の虎★]
- 【悲報】8900万のSteamアカウント(全体の3分の2)がダークウェブに流出 [253839187]
- 50年後の自民党の評価、歴史の教科書になんて載っているんだろう [943688309]
- 【悲報】山上徹也裁判10/28初公判⇒来年1月に判決の超スピード裁判になる模様。公判延ばしてからの参院選後⇒通常国会前の超政治日程 [731544683]
- アマプラで「NHKスペシャル ドキュメント太平洋戦争」が見れるぞ。ジャップ軍のアホさが堪能できる珠玉のドキュメンタリー [268718286]
- 【朗報】日本政府、日本車をアメリカで製造して日本へ輸出提案。アメリカへの工場移転でトランプも関税撤廃か [673057929]
- 【悲報】Wikipediaさん、乞食活動開始 [498165479]