>>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■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【米国】今後「株価は上昇し、好景気になる」トランプ大統領 NY株大幅下落にも強気崩さず 相互関税導入を「手術」に例える投稿も ★2 [ぐれ★]
- 中居正広氏、関係者に「できることはやった。こんなはずじゃなかった」と説明 [ひかり★]
- iPhoneに価格上昇圧力 米相互関税で最大43%―証券会社試算 [蚤の市★]
- 【万博】「あんなもん行けるか」無料招待強制に教師「下見したからには絶対に来いと言われれかねない」 [七波羅探題★]
- 【米国】マスク氏、数カ月で政権離脱へ トランプ氏表明、あつれき否定 [ぐれ★]
- 【中居正広】14年前のFNS27時間テレビで脳科学者が「女性におぼれて芸能界追放」と“予言” X騒然「すごい」 [Ailuropoda melanoleuca★]
- iPhoneアメリカでの価格は相互関税で30─40%上昇か。iPhone16は799ドルから1142ドル、ProMaxは1599ドルから2300ドル弱も [256556981]
- 【悲報】アメリカ人「関税を上げると物価が下がる」VS日本人「減税すると賃金が増える」 [354616885]
- 【安倍悲報】クルーグマン「これもうトランプは完全に狂ってるだろ😨」 [359965264]
- トランプの関税計算式に「経済的合理性なし」「信じがたいほど愚か」と専門家が酷評 [432287167]
- 【悲報】ドジャース佐々木朗希、打たれて泣いたことが相当アメリカ人を不快にさせた模様……………………………………🥺 [312375913]
- 【恐慌の前兆】アメリカ、大量解雇はじまるwwwwwwwwwwwwwwwwwwaaaaaa [458340425]