■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50

read.cgi改良スレッド 2

1 :名無し娘。 ◆vP.bOZFQ :01/09/09 20:38
ここは read.cgi の改良だけを専門に扱うスレッドです。

2ちゃんねるで行われている他のプログラム開発や、動作報告・障害報告等に
ついては、それぞれ専用のスレッドが
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20
に一覧されておりますので、移動してください。お願いします。

●前スレ
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848

●read.cgi最新ソースコード(定期的に同期されています)
 http://www.gedoh.org/aki/2ch/current/bbs/
 http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html

●2ちゃんねる軽量化関連スレッド群
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20

●前スレで提示されている案・意見の一覧
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=30
 あたりにまとめられているはず。

509 :506 :01/09/20 07:04
やってることは大差ないんだが、機能がダブってるんでマージできないんだよね。
ちなみに、r2chhtml.hにPATHの文字は残っていない。

510 :デフォルトの名無しさん :01/09/20 07:06
506の方法は美しそうだ。がんばれ(笑)

511 :507 :01/09/20 07:24
rewrite_hrefの方はconflictしてないだろうとして、
「掲示板に戻る」のリンク先かな?
可能なら、zz_board_nameから作成してもらったほうがいいけど、
だめなら、無視してくださいな。
html_head/html_footの内部の
#ifdef USE_PATH
#endif
#ifdef CHECK_MOD_GZIP
#endif
#ifdef GZIP
#else
#endif
が1つのpPrintfだけになっちゃったから、その辺がまずいかな。

あと、zz_server_softwareも、
「使わないから消した」だけだから、
必要ならもどしちゃってください。

将来formatの切替を考えるにしても、
パラメータが(関数としてでも)統一されさえすればよいので、
無理にzz_thread_nameにこだわるつもりはないです。

512 :506 :01/09/20 07:34
>>511
実は、rewrite_hrefから何からread.cgiを呼び出す奴は全ていじった。
掲示板に戻るも考え方は同じだが、違う実装をした。

他にも、細かい所を修正してあったので、悪いが1.124の変更はキャンセルして
commitしました。

途中のマージ忘れがないか、これからチェックします。

513 :デフォルトの名無しさん :01/09/20 07:49
特に機能的に変更した内容はChangeLogにも書いて頂けますか?

514 :506 :01/09/20 08:06
>>513
機能的な変更は、ほとんどがバグ対応です。
マージミスの修正とコメントの追加が済んだら、一緒にコミットします。

515 :デフォルトの名無しさん :01/09/20 08:19
>>472ですが、
LATEST_ANCHORは常に生きにしたはずなのに
conditionが残ってるのはどうしてなんでしょうか?
(ALL_ANCHORのほうは残ってない)

516 :506 :01/09/20 08:42
>>514
コミットしました。

>>515
SEPARATE_CHUNK_ANCHORの時に出力する場所が違うせいで、
取りにくかったのが原因かな。

517 :デフォルトの名無しさん :01/09/20 09:05
整理されてみると、first_line()やlast_line()が何回も呼ばれているのが気になってくる。

518 :506 :01/09/20 09:21
>>515
LATEST_ANCHORのcondition削除
ついでに、SEPARATE_CHUN_ANCHORがONの場合を調整

519 :デフォルトの名無しさん :01/09/20 16:15
config.txtで、ALL_ANCHORも「採用決定のためcondition削除」
へ移動したほうがいいのではないかと。

520 :デフォルトの名無しさん :01/09/20 16:32
PATH仕様でないときの「最新50」では1が表示されますが、
http://news.2ch.net/test/read.cgi?bbs=news&key=1000969048&ls=50
PATH仕様で「最新50」にすると1が表示されなくなります。
http://news.2ch.net/test/read.cgi/news/1000969048/l50
「l」を指定したときはnofirst=falseをデフォルトにしたほうが
動作が統一されていいのでは。

521 :デフォルトの名無しさん :01/09/20 17:29
全鯖read.cgi 5.22になったようなので、bbs.cgiのパス仕様対応を
要望しに行きたいのですが、
http://piza2.2ch.net/test/read.cgi/tech/998921988/219-222n
計算間違いなどのツッコミ希望。

522 :デフォルトの名無しさん :01/09/20 18:52
#ifdef GZIP
if (!gzip_flag)
strcpy(p,"index.html");
else
#endif
strcpy(p,"index.htm");

これおかしくないですか? GZIPがオフならindex.htmlに
戻らなくてはならないはずですけど。
それと戻り先を /板名/ にすれば10バイト減らせます。
以上を考え合わせて
#ifdef GZIP
if (gzip_flag)
strcpy(p,"index.htm");
#endif

523 :521 :01/09/20 20:03
read.cgi 5.22はi-mode用がパス仕様に未対応でしたっけ。
http://piza2.2ch.net/test/read.cgi/tech/998921988/i
もうすこし待ったほうがいいか。

524 :デフォルトの名無しさん :01/09/20 20:44
非パス仕様のURLで呼ばれたときはBASEを出力して、
常にパス仕様でリンクを生成

[r2chhtml.h]
#ifdef ALWAYS_PATH
#define R2CH_HTML_HEADER_0 \
"<html>" \
"<head>" \
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">"

#define R2CH_HTML_BASE_DEFINE "<base href=\"http://%s/test/" CGINAME "/%s/%s/\">"
#endif

変更(<title>以前を削除):
#define R2CH_SIMPLE_HTML_HEADER_1(title, cookie_script) \
R2CH_HTML_CSS_TYPE \
"<title>" title " </title>" \
cookie_script \
R2CH_HTML_CSS_DEFINE \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>"

変更(<title>以前を削除):
#define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \
"<title>" title " </title>" \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \
"<a href=\"" board "\">■掲示板に戻る■</a>" \
" <a href=" alllink ">レスを最初から読む</a>"

[read.c]
#ifdef ALWAYS_PATH
char const *zz_server_name;
#endif

zz_GetEnv()に追加:
#ifdef ALWAYS_PATH
zz_server_name = getenv("SERVER_NAME");
#endif

html_head()内「if (!is_imode()) {」の直前に追加:
pPrintf(pStdout, R2CH_HTML_HEADER_0);
#ifdef ALWAYS_PATH
if (path_depth < 3 && zz_server_name) {
pPrintf(pStdout, R2CH_HTML_BASE_DEFINE, zz_server_name, zz_bs, zz_ky);
path_depth = 3;
}
#endif

525 :デフォルトの名無しさん :01/09/20 21:19
>>520
最新版では合わせてあるはずだけど?
5.22のことを言ってるのかな。

>>522
過去の動作に合わせた。判定しないときはindex.htm推奨の名残。
いまさらindex.htmにする意味はないから、index.htmlでかまわないけど。

index.htmlを付けるかどうかは、バイト数削ることより
bbs.cgiも含めて統一することの方が大切。
2chの板じゃ回転速すぎて意味がない気もするが。

526 :デフォルトの名無しさん :01/09/20 21:23
>>525
bbstableは /板名/ にリンクしてるからそのほうがいいかと
思った。リロードは常にindex.htmだし。
過去動作との互換は了解。
>判定しないときはindex.htm推奨の名残。
どこで推奨してたの?

527 :デフォルトの名無しさん :01/09/20 21:42
1から表示したときは「前100」が省略されるのに
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&to=50
最後まで表示されてても「次100」は省略されない。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&ls=50
これもcurrentでは修正済みだったりする?

528 :デフォルトの名無しさん :01/09/20 21:46
PREV_NEXT_ANCHOR有効時はi-mode版もリンクを
「1-」「最新10」「次10」のように簡略化すること希望。

529 :デフォルトの名無しさん :01/09/20 21:46
>>526
書き方が悪かったかな。
判定が入っていない時期に、2chで.htmの使用を推奨していたため。

現実には一度も実使用されてない部分だからindex.htmlでいいんだが。

530 :デフォルトの名無しさん :01/09/20 21:53
>>527
1より前はありえないから「前100」は省略した。
最後は読んでるうちに増えるかもしれないので「次100」は残しておいた。

取った方がいいですか?

531 :527 :01/09/20 21:55
>最後は読んでるうちに増えるかもしれないので「次100」は残しておいた。

なるほど。

532 :デフォルトの名無しさん :01/09/20 21:57
でも1000超え時にはさすがにいらないかも。
http://news.2ch.net/test/read.cgi?bbs=news&key=1000822776

533 :デフォルトの名無しさん :01/09/20 21:58
CHUNK_ANCHORの「1001-」もいらない気がする。
Over 1000 Threadを読むためだけに「1001-」を
ほしがる人はいないでしょう。

534 :デフォルトの名無しさん :01/09/20 22:00
どこかcurrentの動作テストを常にできるところってある?

535 :批判要望から :01/09/20 22:10
196 名前:哀モですが 投稿日:01/09/20 22:04 ID:cr4UsmUk
哀モードからなんですけど、表示が10レスきざみですよね。
で、今の状態だと最初と最新の 10レスしか見れないじゃないですか。
>>も使えない板もあるし。

【前の10レスを見る】のようなんは導入されないのですか?

536 :デフォルトの名無しさん :01/09/20 22:32
>>532-533
スレストに失敗することもあったりするからなあ。
「1001-」は、気持ちよくないのは確かだね。

>>534
テスト公開してくれた所が一時期はあったようなんだけど、今は?

>>535
i-modeでどうなると嬉しいかを実感できないので不具合修正にとどめています。
具体的に要望を出す人もいなかったし。

次ぎの10レスでnofirst=trueの方がいいんじゃないか
とか思ってもいじってません。
>>528みたいに具体的な要望をあげておくのがよろしいかと。

537 :デフォルトの名無しさん :01/09/20 22:56
COOKIEの残骸を取った。
create_bbs_path()を作って、FORMの出力まわりも整理した。
なんかもっとましな方法がありそうだが、他との統一ということで。

>>524
相対パス対応が欲しいな。(/test/もはずしたい)
SCRIPT_NAMEあたりか?
HTTP_HOSTとSERVER_NAMEの扱いは?

538 :デフォルトの名無しさん :01/09/20 22:58
>>537
HTTP_HOSTは「Host:」ヘッダがないと定義されないから
クライアントに依存しないSERVER_NAMEにした。
実際には「Host:」がないと「ブラウザ変ですよん」を喰らっ
たり鯖によっては見ることさえできないから気にし過ぎ
かもしれないけど。

539 :デフォルトの名無しさん :01/09/20 23:06
相対パス対応(>>524と違うところのみ)
#define R2CH_HTML_BASE_DEFINE "<base href=\"http://%s%s/%s/%s/\">"

#ifdef ALWAYS_PATH
char const *zz_server_name;
char const *zz_script_name;
#endif

if (path_depth < 3 && zz_server_name && zz_script_name) {
pPrintf(pStdout, R2CH_HTML_BASE_DEFINE, zz_server_name, zz_script_name, zz_bs, zz_ky);
path_depth = 3;
}

540 :デフォルトの名無しさん :01/09/20 23:07
書き忘れ。
#ifdef ALWAYS_PATH
zz_server_name = getenv("SERVER_NAME");
zz_script_name = getenv("SCRIPT_NAME");
#endif

541 :夜勤 ★ :01/09/21 00:52
おっと 現在は index.htm だの色々ありますが、完成形は
全部 .html だけの運用になりまする。(.htm は廃止の予定です)

よろしくお願いいたします。

542 :デフォルトの名無しさん :01/09/21 03:22
>>524
>>539-540
 まとめてあてた。

543 :デフォルトの名無しさん :01/09/21 04:44
>>540,542
HTTP_HOSTが使える時はそちらを使うようにした。

掲示板に戻るは、できるだけ/板名/を使うようにした。
path形式で/iのバグ修正
ALL_ANCHORの記述移動

544 :デフォルトの名無しさん :01/09/21 05:02
>>528
#ifdef PREV_NEXT_ANCHOR
#define R2CH_HTML_IMODE_TAIL(path, next) \
" <a href=" path ">次" next "</a>"
#define R2CH_HTML_IMODE_TAIL2(path, ls) \
" <a href=" path ">最新" ls "</a><br>\n"
#else
#define R2CH_HTML_IMODE_TAIL(path, next) \
" <a href=" path ">次の" next "レス</a>"
#define R2CH_HTML_IMODE_TAIL2(path, ls) \
" <a href=" path ">最新レス" ls "</a><br>\n"
#endif

#ifdef PREV_NEXT_ANCHOR
#define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \
"<title>" title " </title>" \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \
"<a href=\"" board "\">■掲示板に戻る■</a>" \
" <a href=" alllink ">1-</a>"

#define R2CH_HTML_IMODE_HEADER_2(latestlink, ls) \
" <a href=" latestlink ">最新" ls "</a>"
#else
#define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \
"<title>" title " </title>" \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \
"<a href=\"" board "\">■掲示板に戻る■</a>" \
" <a href=" alllink ">レスを最初から読む</a>"

#define R2CH_HTML_IMODE_HEADER_2(latestlink, ls) \
" <a href=" latestlink ">最新レス" ls "</a>"
#endif

545 :デフォルトの名無しさん :01/09/21 05:13
i-mode版で不要な</dl>が出力されるバグの修正。

if (!is_imode())
を、dat_out()内の
pPrintf(pStdout, R2CH_HTML_PREFOOTER);
の前に付ける。

今はi-mode版ではcan_simplehtml()がfalseを返すから
関係ないけどout_simplehtml()も修正しておいたほうが
安全かも。

546 :デフォルトの名無しさん :01/09/21 05:44
>>544-545
当てた

547 :デフォルトの名無しさん :01/09/21 06:14
パス仕様で倉庫落ちしたスレッドのURLを指定したとき、
「そんな板orスレッドないです。」の画面でリンクが切れる。
http://teri.2ch.net/test/read.cgi/accuse/990769720/
存在しないスレの場合の「過去ログ倉庫」へのリンクも同様。
http://teri.2ch.net/test/read.cgi/accuse/990769721/
とりあえず報告だけ。

548 :デフォルトの名無しさん :01/09/21 06:23
>>547 修正。
#define R2CH_HTML_ERROR_5_HTML \
"隊長! 過去ログ倉庫で、<a href=\"%s%s\">スレッド %s.html</a> を発見しました。\n"

#define R2CH_HTML_ERROR_5_DAT \
"隊長! 過去ログ倉庫で、<a href=\"%s%s\">スレッド %s.dat</a> を発見しました。<br>" \
"<b><font size=+1 color=red>が</font></b>、しかしまだ html化されていません。残念、待つしかない。\n"

#define R2CH_HTML_ERROR_5_NONE \
"<a href=\"%s" KAKO_DIR "\">過去ログ倉庫</a>にもありませんでした。<br>" \
"問い合わせても見つかる可能\性はほとんどありません。\n"

pPrintf(pStdout, R2CH_HTML_ERROR_5_HTML,
create_bbs_path(), doko, tmp);

pPrintf(pStdout, R2CH_HTML_ERROR_5_DAT,
create_bbs_path(), doko, tmp);

pPrintf(pStdout, R2CH_HTML_ERROR_5_NONE,
create_bbs_path(), zz_bs);

549 :デフォルトの名無しさん :01/09/21 06:25
create_bbs_path()は関数名を変更したほうがいいかも。

550 :デフォルトの名無しさん :01/09/21 06:41
>>548
当てた

551 :デフォルトの名無しさん :01/09/21 06:47
要望なのですが。

鯖移転した板のスレへのリンクをクリックしたとき、現状、
http://news.kakiko.com/mentai/へ飛ばされますよね。
これを、倉庫落ちなどと同様に、新鯖のスレへ飛ばすようには
できないでしょうか?
bbs名はほとんど変わらないと思うので。

夜勤さん(鯖側)の範疇なのかな。

552 :デフォルトの名無しさん :01/09/21 06:57
>>477
dat_out_raw()を修正:
pPrintf(pStdout, " %d/%dK\n", end - begin, MAX_FILESIZE / 1024);

553 :デフォルトの名無しさん :01/09/21 07:16
>>552
当てた。

あとcreate_parent_link()などを毎回呼ぶのをやめて
一回だけグローバル変数に作って使うようにした。

554 :デフォルトの名無しさん :01/09/21 07:58
>>nnリンクを削除する場合に余分な"</a>"が残ってしまっていたバグ修正。

555 :デフォルトの名無しさん :01/09/21 08:28
dat_out()とかのlevel引数って使ってないみたいだけど、
バッサリ消してもいいんでしょうか?

556 :デフォルトの名無しさん :01/09/21 08:46
>>555
#ifdef USE_INDEXで囲むくらいにしておいたほうがいいかも。
関数の引数として渡されてる部分は難しいけど。

557 :デフォルトの名無しさん :01/09/21 08:48
USE_INDEXってのは.idxファイルのサポート用で
ダイジェスト表示とは直接関係ないんだっけ?
だとすると #ifdef USE_INDEX は変だな。
やっぱりバッサリ逝くか?

558 :デフォルトの名無しさん :01/09/21 09:12
>>557
#ifdef USE_INDEXで囲った。
USE_INDEXが有効ならダイジェストを呼び出すようになってたので。

559 :デフォルトの名無しさん :01/09/21 10:15
sageのメールリンク最適化。

[r2chhtml.h]
#ifdef CREATE_NAME_ANCHOR
(中略)
#ifdef SAGE_IS_PLAIN
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " <a name=" l ">" R2CH_HTML_NAME "<font color=blue><b>" nm " </b></font></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#else
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " " R2CH_HTML_NAME "<a name=" l " href=mailto:sage><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#endif

#else
(中略)
#ifdef SAGE_IS_PLAIN
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " " R2CH_HTML_NAME "<font color=blue><b>" nm " </b></font> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#else
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " " R2CH_HTML_NAME "<a href=mailto:sage><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#endif

#endif

[read.c]
#ifdef SAGE_IS_PLAIN (1箇所だけ)を削除

SAGE_IS_PLAINはいちおう残してみたけどオンにしたほうが
とくなことって何もない気がする。

560 :デフォルトの名無しさん :01/09/21 10:27
>>559
これってsageのために囲む " を取っただけ?
圧縮率にも、cgiのバイナリサイズにも逆効果な気がするなあ。

561 :デフォルトの名無しさん :01/09/21 10:40
>>560
じゃあ危なそうな文字( " とか空白とか)を含んでない
ときはいつも " を削除するというのはどう?

562 :デフォルトの名無しさん :01/09/21 11:28
あちこちにあるtarget="_blank" の「"」って消せるんでない?

563 :デフォルトの名無しさん :01/09/21 11:36
_ は " で囲まなくても安全な文字じゃないんだけどすでに #
とか囲まないで書きまくってるしいまさらそんなこと気にしても
確かに仕方ない

564 :デフォルトの名無しさん :01/09/21 11:39
HTML 2.0/3.2の仕様上は、 " で囲まなくてもいい文字は
英数字と - と . だけ。
現実のブラウザはもっとはるかにルーズだけど。

565 :デフォルトの名無しさん :01/09/21 12:10
HTML 4.0(とそれ以降)の仕様上は、 "" で囲まなくてもいい文字は
英数字と . と - と _ と : の四つ。
現実のブラウザは以下同じ。

566 :デフォルトの名無しさん :01/09/21 13:29
>>553
>あとcreate_parent_link()などを毎回呼ぶのをやめて
最大2回しか呼ばないんだけど・・・。
使わないときは、初期化もしないんだけど・・・。

567 :デフォルトの名無しさん :01/09/21 16:05
>>562
r2chhtml.hでTARGET_BLANK, TARGET_BODYにマクロ定義した上で
「"」を消してみた。
駄目ならこのマクロ定義直してくれ。

568 :デフォルトの名無しさん :01/09/21 16:47
効率とはまったく関係ないけど
REFERDRES_SIMPLE のスペルミスが気になる…
×REFERDRES_SIMPLE
○REFEREDRES_SIMPLE

569 :デフォルトの名無しさん :01/09/21 17:48
開発中のみ、平常時間帯でも混雑時の出力をするquery、
Faketime=true(あえて大文字)を提案したいが、どうだろう?
ローカルで確認する時もSETTING_FILEのLIMITを変更するのが面倒だし、
逆はともかく、制限が強くなるだけだから、
そのまま実験サーバーに上げられても不都合はないと思うので。

もしやるなら、zz_GetEnv()の最後でisbusytimeを設定した後に、
#ifndefNDEBUG
 {
  char fake[1024];
  GetString(zz_query_string, fake, sizeof(fake), "Faketime");
  if (*fake == 't')
   isbusytime = 1;
 }
#endif
(read2ch.hに記述するような内容ではないと思う)

570 :デフォルトの名無しさん :01/09/21 17:56
それだと、すべてのリンクにFaketime=trueが付くようにしないと
ちゃんと確認できないと思うが…
REFERDRES_SIMPLEとか確認できなさそうだし。
常に混雑時間帯のCGIとか別ディレクトリに用意しておいたら?

571 :デフォルトの名無しさん :01/09/21 18:07
いや、嫌なら別に無くてもかまわないけどね。
開発時に出力をCUT&TRYする時に確認を楽にしたいだけだから。
別CGI作って置いといても、read.cをいじっている最中には無意味だし。

572 :571 :01/09/21 18:31
「嫌なら」って言い方良くなかった。
「自分以外に需要がなければ」ってことです。

どうしても必要だと思ったら、同意など求めずに勝手にcommitしてますが、
自分の判断だけで決めるのは避けたいので。

573 :デフォルトの名無しさん :01/09/21 18:41
>>572
HTTP_HOSTの最後が:80だったら混雑時にするってのでいかが。
http://localhost:80/ とかでアクセスすればいい。

int IsBusy2ch(void)
{
#if 1
 if (zz_server_name && strstr(zz_server_name, ":80") ) return 1;
#endif

574 :571 :01/09/21 19:09
どうも、「別のディレクトリに」を勘違いして解釈していた気がする。
テスト用にLIMIT_AMやLIMIT_PMを変えた板を用意して、
bbs=techbusyのような形式でリクエストしてテストすれば、
read.cには手を加えずとも、出力確認程度なら
Faketimeとほぼ同様の効果が得られる、という気がしてきた。
ということで、この提案は取り下げます。

ところで、>>475のHTTP1.1判別なのだが、
もし、If-None-Matchを付加するのがHTTP1.1クライアントのみとしても、
クライアントがHTTPのVer1.0か1.1のどちらでGETしているかを
CGI側で判別することはできるのだろうか?
ちょっと調べた限りではみつからなかった。

575 :デフォルトの名無しさん :01/09/21 19:17
>>574
IE5.5 : SERVER_PROTOCOL="HTTP/1.1"
NN4.78 : SERVER_PROTOCOL="HTTP/1.0"
telnetでGETのみ(HTTP指定なし) : SERVER_PROTOCOL="HTTP/0.9"

いや、ちょっといれ忘れたんだけど、0.9かよ。
無理に調べて対応する程のことってあったけ?

576 :デフォルトの名無しさん :01/09/21 19:47
0.9は無視していいと思う。
せっかくタグ吐いてもApacheに全部捨てられちゃうだろうし。

577 :デフォルトの名無しさん :01/09/21 19:53
知らんかった。
SERVER_PROTOCOLって、Apacheがレスポンスで返すバージョンのことだと思ってた。
どうもありがとう。

578 :デフォルトの名無しさん :01/09/21 19:54
で、HTTP/の指定が無いと0.9扱いになると。

579 :デフォルトの名無しさん :01/09/21 20:17
一応ソース。
http://hoohoo.ncsa.uiuc.edu/cgi/env.html
・SERVER_PROTOCOL
The name and revision of the information protcol this
request came in with. Format: protocol/revision

580 :デフォルトの名無しさん :01/09/21 21:08
みなさんお疲れさまです。

http://teri.2ch.net/test/read.cgi?bbs=accuse&key=988761989&st=768
批判要望板でこのような質問がありました。
http://cocoa.2ch.net/test/read.cgi?bbs=cg&key=975777954&st=265&to=265
http://cocoa.2ch.net/cg/dat/975777954.dat
このスレッドの265レス目が[ここ壊れています]になっているというものです。
datファイルを確認すると、265行目は次のようになっていました。
<><>2001/03/09(金) 00:36<> <>
名前欄、本文欄ともに半角スペースだけのデータです。

現在のbbs.cgiでは、本文欄のデータをdatファイルに送る際に
各行の先頭と末尾に半角スペースを加えています。
しかし、[ここ壊れています]となっているレスが書かれた頃はまだそのような
データの追加はされておらず、本文欄が半角スペースならdatファイルの本文の部分も
半角スペースのままだったと思います。

古いbbs.cgiの頃に書かれた「本文が半角スペースだけのレス」の全てが
[ここ壊れています]になるのかどうかは確認できていませんが、
もしread.cgiの方で本文半角スペースのレスを読み込めないようになっているのでしたら
その点を改良できませんでしょうか。
よろしくお願い致します。

581 :デフォルトの名無しさん :01/09/21 21:12
#define R2CH_HTML_CSS_TYPE "<meta http-equiv=Content-Style-Type content=\"text/css\">"
インラインスタイルを使ってないからこれは不要。

582 :デフォルトの名無しさん :01/09/21 21:59
>>580
対処した

583 :デフォルトの名無しさん :01/09/21 22:34
READ_KAKOを追加
 read.cgiで過去ログ、dat落ちを読む
指定方法
 read.cgi/tech/kako/nnn/ または read.cgi?bbs=tech&key=kako/nnn
 read.cgi/tech/temp/nnn/ または read.cgi?bbs=tech&key=temp/nnn

現在はONにしてあるが、転送量が増加すると思うので
本番導入前に夜勤さん★に考えてもらうこと。

ChangeLog読んでから導入してもらいましょう。

584 :デフォルトの名無しさん :01/09/21 23:02
以前は
bbs=tech&key=../kako/nnn/nnnmmm
で読めたものを
負荷の問題から止めてあるだけでしょ。

dat_readのhtml_error()を呼ぶ3つ目ifを削れば、
kakoのサブディレクトリまで指定しないといけないけど、
そのまま読めるはず。

585 :デフォルトの名無しさん :01/09/21 23:18
READ_KAKO conditionを設けるのはいいと思うが、
理由があって読めなくしてあるのだから、
OFFにしておくべきだと思う。

PATH仕様への対応も、
「過去ログ読む程度にそこまでやる必要はあるの?」
という気がする。

でも、ディレクトリが移動して
../kako/でアクセス出来なくなる場合もあるから
その場合に備えて対応はしておくのはいいかもね。

586 :デフォルトの名無しさん :01/09/21 23:34
まあ、>>206 >>237 みたいな話もあるし、
過去ログの指定先がどこになるかわかんないから、
kako/nnnで統一できた方がいいでしょ。

PATHで、../kako/を指定されるのは困るってのもある。
read.cgiが扱うなら、提供するかもしれない。

どれもこれも夜勤さん次第。

587 :デフォルトの名無しさん :01/09/21 23:46
そういえば、st=などを「過去ログを発見しました」に透過的に渡して、
転送量を節約しようって話もあったね。

588 :名無し :01/09/21 23:49
>>582さん
ありがとうございます。
新バージョン導入待ちですね、、

589 :デフォルトの名無しさん :01/09/21 23:52
FTP鯖内のpub/MP3ってなんだろうね?

590 :デフォルトの名無しさん :01/09/21 23:58
だからOFFにしとけっての。

591 :デフォルトの名無しさん :01/09/22 00:04
>PATHで、../kako/を指定されるのは困るってのもある。
>>585はそこまでする必要があるのかって話でしょ。

>どれもこれも夜勤さん次第。
だから、今まで過去ログをあえて閲覧できないようにしていたんでしょ。

592 :デフォルトの名無しさん :01/09/22 00:35
READ_KAKOは、必要があれば夜勤さんがONにすればよいだけなので、
現状に合わせてOFFにします。

593 :デフォルトの名無しさん :01/09/22 01:42
>>587
READ_KAKO_THROUGHとして実装した。

>>591
やるからには、ちゃんとやる。
ALWAYS_PATHを採用し、全読み以外を提供するならやらない訳にいかない。

html化された過去ログには広告ついてるやん。どうすんだ。

594 :デフォルトの名無しさん :01/09/22 01:52
意味がわかりません

595 :デフォルトの名無しさん :01/09/22 02:12
>>594
わからないのは、↓のことかな。
>ALWAYS_PATHを採用し、全読み以外を提供するならやらない訳にいかない。

read.cgi?bbs=tech&key=../kako/999/999xxxで表示したときに
ALWAYS_PATHだと、中のリンクが使い物にならなくなるの。

全部読むことしか提供しなければ、リンクが機能しなくても
なんとかなるけど、範囲指定を提供するならリンクも機能して
欲しいよね。

596 :デフォルトの名無しさん :01/09/22 04:42
以前、過去ログがread.cgiで読めた頃から
>read.cgi?bbs=tech&key=../kako/999/999xxxで表示したときに
>中のリンクが使い物にならなく
なってたけど、
苦情は見たことなかったな。
html化した後のリンクの苦情はあったね。
アンカー振って欲しいって。

kakoが読めなくて苦情が出た事は知ってるけどさ。

597 :デフォルトの名無しさん :01/09/22 05:27
こんなの作った。read2ch.hはいじってない。

△CUT_TAIL_BLANK
直前の文字がShift_JISの1バイト目であるかを厳密に判定する事により、
名前欄とメール欄の末尾の空白、及び<br>タグ直前の空白をほぼ消滅させる。

▲STRICT_ILLEGAL_CHECK
(意図的な)文字化け防止のため、
'<',"http://"の直前の文字がShift_JISの1バイト目かを厳密に判定し、
必要ならば空白を加える。(fusianasanのbold化け対策と似た処理)
コスト(負荷)がかかる割に転送量減少には貢献せず、
仮に文字化けしてもその部分だけで留まり、大きな影響はないため、OFF推奨。

/* 名前末尾・メール末尾・<br>タグ前・レス末尾の空白を
(可能なら)全て削除する */
#defineCUT_TAIL_BLANK

/* '<',"http://"の直前の文字を調べ、必要ならば空白を加える。 */
/* #defineSTRICT_ILLEGAL_CHECK */

598 :デフォルトの名無しさん :01/09/22 06:09
kakoの読み出しとtempの読み出しは別々のconditionに
すべきだと思う。現在kakoは読めるけどtempはdatさえ
読めないのは理由のないことではない。
もちろんデフォルトは両方ともOFF。

599 :デフォルトの名無しさん :01/09/22 06:38
>>598 変更点。
▲READ_TEMP
(READ_KAKO定義時のみ有効)
html化待ちのdatもread.cgiで読む。

先頭に追加:
#ifndef READ_KAKO
#undef READ_TEMP
#endif

main():
#ifdef READ_KAKO
if (read_kako[0] == 'k') {
char buf[256];
kako_dirname(buf, zz_ky);
sprintf(fname, KAKO_DIR "%.20s/%.20s.dat", zz_bs, buf, zz_ky);
#ifdef READ_TEMP
} else if (read_kako[0] == 't') {
sprintf(fname, TEMP_DIR "%.20s.dat", zz_bs, zz_ky);
#endif
} else
#endif

html_error():
#ifdef READ_TEMP
pPrintf(pStdout, R2CH_HTML_ERROR_5_TEMP,
zz_cgi_path, zz_bs, "temp/", tmp, tmp);
#else
pPrintf(pStdout, R2CH_HTML_ERROR_5_TEMP,
tmp);
#endif

600 :デフォルトの名無しさん :01/09/22 12:45
>>599 当てた
>>597 config.txt, ChangeLog, read2ch.h にも反映した

601 :デフォルトの名無しさん :01/09/22 15:50
>>593
READ_KAKO_THROUGHの実装ってcvsに入ってないみたいな。

602 :デフォルトの名無しさん :01/09/22 16:20
>>601
CUT_TAIL_BLANK作った人が消したようだ。
入れなおし中

603 :602 :01/09/22 17:05
>>602
READ_KAKO_THROUGH復活&整理した

604 : ◆D69Zsbfg @夜勤 ★ :01/09/22 18:18
いつも お世話になっています。
区切りのよさそうなところで、また新しい version を入れて見たいのですが、
どんなもんでしょうか?

605 :デフォルトの名無しさん :01/09/22 18:45



Rubyはクソです。ゴミ箱逝きです。

いじょ
この発言をコピペしていただければ幸いです。

606 :デフォルトの名無しさん :01/09/22 18:48
>>605は誤爆か?

607 :デフォルトの名無しさん :01/09/22 19:09
>>604
お疲れ様です〜
区切りは良いんじゃないでしょうか。

5.22からの大まかな変更は:
・i-mode関連の修正複数
・rawモードの末尾に余分な出力があったバグ修正, 結果書式に上限サイズ追加
・行末の空白を削除
・過去落ち画面のリンクがおかしかったバグ修正
のほか、新機能として:
ALWAYS_PATH: read.cgiからリンクされるレスへのリンクがすべてパス形式になる
が有効になっています。
また、
READ_KAKO: 過去ログをread.cgiで参照可能にする
READ_TEMP: 過去落ち前datも参照可能にする
READ_KAKO_THROUGH: 範囲指定を過去落ち/過去落ち前にも継承する
という新機能もありますが、こちらは無効になっています。

詳しい修正内容はChangeLogをご覧下さい。

608 :592 :01/09/22 19:29
>>601-603
申し訳ないです。ごめんなさい。

609 : ◆D69Zsbfg @夜勤 ★ :01/09/22 20:20
じゃ 入れよーと思います。
どこから 落とせばいいのかな?

610 :デフォルトの名無しさん :01/09/22 20:23
>>609
いつもの
http://www.gedoh.org/aki/2ch/current/bbs/
が復活してま〜す

611 : ◆D69Zsbfg @夜勤 ★ :01/09/22 20:25
了解。

612 : ◆D69Zsbfg @夜勤 ★ :01/09/22 20:31
choko に read,.cgi ver 5.23 いれましたー。

613 :デフォルトの名無しさん :01/09/22 20:33
http://choco.2ch.net/dancesite/SETTING_R.TXT

FORCE_304_TIME=0
とか書いておくと、この板のみ実況対策機能が無効になります。

614 :デフォルトの名無しさん :01/09/22 20:34
cvsにtag YAKIN20010922 打っときました

615 : ◆D69Zsbfg @夜勤 ★ :01/09/22 20:37
>>613
うーむ、、、
なんせ 一秒間に数十回とか呼ばれる cgi なんで、極力ファイルの参照は
行いたくないというのが本音だったりします。

そのへんは、今後も考えなきゃならないところですが、、

616 :デフォルトの名無しさん :01/09/22 20:40
なるほど…
次バージョンからはUSE_SETTING_FILEはデフォルトで
オフにしておきましょうか…

617 :デフォルトの名無しさん :01/09/22 21:11
>>613-616
こんなもんでも作ってごく一部のみsettingを変えられるようにしましょう。
実況板といえども、FORCE_304_TIME=0はやめといた方がいいと思う。

[read2ch.h]
#define SPECIAL_SETTING \
 { "saku", "LINKTAGCUT=0" }, \
 { "dancesite", "FORCE_304_TIME=3" },

[read.c]
struct _setting {
 char *board_name;
 char *settings;
} special_setting[] = {
 SPECIAL_SETTING
 { NULL, },
};

618 :デフォルトの名無しさん :01/09/22 21:26
ttp://piza2.2ch.net/news3/kako/100/1000336331.html
予想はしていたけど、過去ログが kako/100/ に逝ってるyp。

619 :デフォルトの名無しさん :01/09/22 21:33
http://piza2.2ch.net/test/read.cgi/news3/1000336331/
さらに倉庫を見つけるのに失敗してるyp。

620 :デフォルトの名無しさん :01/09/22 21:34
SETTINGFILEをOFFにすると、
メモリ参照が即値になり、ファイルを探さなくなるので
負荷は少し減りますね。
板別に設定が出来なくなってしまうので、
鯖別に設定を持つだけになってしまうのと、
状況をみて外から簡単に変更するというのが出来なくなるのがデメリットですか。

でも、ファイルの負荷を考えるなら、まず、mmapのパラメータ、
 zz_mmap_size = zz_fileSize + 0x10000,
 PROT_READ | PROT_WRITE,
 MAP_PRIVATE,
を変更するほうが先だと思います。

621 :名無し :01/09/22 21:35
iモードの動作を何とかしてください。
機能をWEB版と同じにして欲しい。

622 :デフォルトの名無しさん :01/09/22 21:36
板別の設定は>>617のような方法で何とか…
簡単に変更できなくなるのは同じですが今まで一度も
使われていないようですし。

>でも、ファイルの負荷を考えるなら、まず、mmapのパラメータ、
> zz_mmap_size = zz_fileSize + 0x10000,
> PROT_READ | PROT_WRITE,
> MAP_PRIVATE,
>を変更するほうが先だと思います。

どのように変更すればいいんでしょうか?

623 :名無し :01/09/22 21:43
あとCSS版を早く入れて欲しいです。
ブラウザによってAAがズレると言ってました。

624 :デフォルトの名無しさん :01/09/22 21:44
AAのズレとCSSは関係ないと思いますが…。
CSS使用はfusianasanや<a name>の対応に問題があって
無効にされています。過去ログ参照。

625 :デフォルトの名無しさん :01/09/22 21:45
>>621
どの機能が欲しいんですか?
全機能だと画面につらいと思うんですが。

>>623
CSS版は問題があって無効にしてるんじゃなかったっけ。

626 :デフォルトの名無しさん :01/09/22 21:53
CHUNK_ANCHORをi-modeでやったら「1- 11- (以下100個続く)」
ということになってほとんど不可能だと思われ
RELOADLINKは実装済み。
したがってPREV_NEXT_ANCHORでは。

627 : ◆D69Zsbfg @夜勤 ★ :01/09/22 22:03
ひとつ 提案なんですが、英語版とか何とか語版とかつくれたらなー
なんて考えています。

各文字列を #define とかしちゃって、

おひまな時でよいので、そんなのが実装できるように ちよっと考えてみてください。
で、 bbs.cgi で 二バイト系の文字はじけば、英語のみの板ができるのでは?
と思っています。 英語でお祭り 2ちゃんねる vs Yahoo.com とか、

628 :デフォルトの名無しさん :01/09/22 22:07
文字列はすでにほとんどr2chhtml.hに追い出されてるから
あとは英語版を用意すればいいかな?

629 :デフォルトの名無しさん :01/09/22 22:10
>>619
5.22でpath形式の時のバグです。
5.23では直っているはず。

630 :デフォルトの名無しさん :01/09/22 22:13
>>622
間違いなく変更してよいのが、
 zz_map_size = zz_fileSize,
 PROT_READ,
の2つです。
(他のプロセスによって書きかえられなければ)オーバーランしないように
なっているし、書き換えもしていないはずです。

で、あぼーんとの関係で若干問題があるのが
 MAP_SHARED
だけど、あぼーんとの関係で
・サイズが詰められたことで、行末の判定を誤る
・その結果、行末が見つからずにオーバーランする
という可能性が僅かにあるものの、
MAPしている間に書き換えが起こるのは滅多に無いと思うし、
それが起こる度合いを考えれば、
その時は素直に500エラーで良いのではと思います。
(実は、負荷的には、これが一番効果があると過去ログにあった気もします)

631 :デフォルトの名無しさん :01/09/22 22:17
>>629
いや、そのバグはリンクは出るけど正しくリンクしていない
というものだったはず。
リンクそのものが出ないというのは別のバグでしょ。

632 :デフォルトの名無しさん :01/09/22 22:24
gzip_flagが0の時は、setvbuf系を使って、
出力系のwrite回数を減らすのも手だね。
ZLIBではあまり効果がないかな。

633 :デフォルトの名無しさん :01/09/22 22:25
1が表示されないのはともかく、次の10レスが表示されない。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=1&to=10&imode=true&nofirst=true
http://piza2.2ch.net/test/read.cgi/tech/1000035521/1-10in
比較対象
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=1&to=10&imode=true
http://piza2.2ch.net/test/read.cgi/tech/1000035521/1-10i

最新版では直ってるかな?

634 :デフォルトの名無しさん :01/09/22 22:29
>>633 直ってないね。
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/1-10in
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/1-10i

635 :デフォルトの名無しさん :01/09/22 22:36
>>633-634
それは、st=1でnofirst=trueの時に1が表示されないのが原因
1-10が内部で2-10扱いになり、次10が出なくなっている。

&st=1&to=10&imode=true&nofirst=true
どこからか、↑みたいにリンクされてるの?

636 :デフォルトの名無しさん :01/09/22 22:37
名無し娘。 ◆vP.bOZFQさん最近見かけないな…
そろそろまとめをきぼーんしたいけど

637 :デフォルトの名無しさん :01/09/22 22:38
>>635
11〜20の10個でもやはりnofirstだと次10が出てないみたい。
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20in
比較用: nofirstなし
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20i

638 :デフォルトの名無しさん :01/09/22 22:41
iモード用じゃなければ出てくるね
やっぱりバグでは
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20n
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20

639 :イラストに騙された名無しさん :01/09/22 22:42
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-in
実際には 11個 表示されますね。そこらへんがポイントかなぁ・・・

640 :デフォルトの名無しさん :01/09/22 22:44
ところで順番は in でいいの?
5.22だと「&imode=true&nofirst=true」の順だったけど
5.23では「ni」になってる。
5.23はURLの生成を集中的に行ってるからたぶん一貫
していて問題ないとは思うけど

641 :デフォルトの名無しさん :01/09/22 22:53
英語版は、まだ誰も作り始めてないだろうけど、
r2chhtml.hがこれ以上#ifdefになるのはちょっと嫌なので、
read.cで
#ifdef ENGLISH
#include "r2chhtml_en.h"
#else
#include "r2chhtml.h"
#endif
をきぼー。

642 :デフォルトの名無しさん :01/09/22 22:53
>>637-638
次10は、混雑時の100レス制限と同じ方式で出している。
表示した個数で出すか出さないかを決めているのだから、
nofirst=trueでは、1個減って出なくなる。

imode用には、終点を指定しない方がいいね。
/1-i とか /11-ni とかに。

でも、nofirst=trueを付けるのは誰?
read.cgiは最新とか新着にしか付けてないはずなんだけど。

643 :デフォルトの名無しさん :01/09/22 22:56
imodeは1が長いと嫌なので、
スレへのリンクにnofirstをつけることは結構あるよ。

644 :デフォルトの名無しさん :01/09/22 23:06
>>642
iモード版じゃなければ混雑時でも出る。
http://choco.2ch.net/test/read.cgi/ainotane/1000491518/101-200
http://choco.2ch.net/test/read.cgi/ainotane/1000491518/101-200n

645 :デフォルトの名無しさん :01/09/22 23:17
>>643
そこらにあるリンク(imode用indexとか)やスレへのリンク(ls=10扱い)、
cgiが出す次10では問題は出ないよ。

で、st=11&to=20などにnofirst=tureをわざわざ付けて、
次10が出ないというのは、バグではなくて要望でしょ。

そうか、だからi-modeでも同じに機能にしてって要望が来るのか。

>>644
それ、混雑時の次100じゃありません。
PREV_NEXT_ANCHORの次100です。

ようするにimodeでPREV_NEXT_ANCHORが付けば全て解決か。

646 :デフォルトの名無しさん :01/09/22 23:20
バグだろ

647 :デフォルトの名無しさん :01/09/22 23:21
どっちでもいいから出るようにしてほしい

648 :デフォルトの名無しさん :01/09/22 23:21
以前はちゃんと出ていたものが出なくなったんだから。

649 :デフォルトの名無しさん :01/09/22 23:25
「すぐ直せ」「誰のせいだ」と
責めているわけではないのに、
なんか、
「どこからもリンクされていないから」
「バグではなくて要望だ」
って、何なんだろ、一体。

650 :名無し娘。 ◆vP.bOZFQ :01/09/22 23:27
>>636
御無沙汰してましてすいませんです。まとめまするー。

651 :デフォルトの名無しさん :01/09/22 23:30
>>649
プログラマの防衛本能かも(w

652 :デフォルトの名無しさん :01/09/22 23:45
あんまり関係ないことで、うるさくしてスマソ。

「どこからもリンクされていないから」は、状況の把握。
そんなことはないはずと思っているのと違うから確認している。

「バグではなくて要望だ」は、プログラマとしてのプライド。
そんな改悪はしてないってこと認めて欲しいと思っている。
まあ、こっちは防衛本能と言われてもしかたがない。

「最初から読む」で出てなかったって責めないでね。
cvsに入ったときからそうなってたんだから。直したのも俺だし。

ほんじゃ、imode用のPREV_NEXT_ANCHORやっとくわ。

653 :デフォルトの名無しさん :01/09/22 23:53
ついでに聞いとくけど、次10でnofirst=trueの方がいいのかな?
その方がよさげなんだけど、要望として上がってるのを見たこと無いんだけど。

もう一つ、次10で読むとき前の最後のレスが次にも出てるんだけど
出さない方がいいかな?

654 :デフォルトの名無しさん :01/09/23 00:00
>>653
>ついでに聞いとくけど、次10でnofirst=trueの方がいいのかな?
>その方がよさげなんだけど、要望として上がってるのを見たこと無いんだけど。

iモードの場合1が大きいと読めなくなって邪魔というのを
過去ログで見た気がする。

>もう一つ、次10で読むとき前の最後のレスが次にも出てるんだけど
>出さない方がいいかな?

ブラウザ版の仕様に合わせて、出さないようにしたほうが
いいと思う

655 :名無し娘。 ◆vP.bOZFQ :01/09/23 00:06
★ftp鯖 ftp://readcgi.dyndns.org/incoming/

★condition一覧/SETTING_R.TXT記述一覧 変更したら随時更新してね♪
 http://www.gedoh.org/aki/2ch/current/bbs/config.txt


実装・検討待ちの案一覧 @654

ETag(もう実装完了?)
 >>137 >>143 >>167-169 >>173 >>229-232 >>438

dat,temp,kako
 datの一部についてのLastModを求める
 ツール作者さんに対応お願い
  http://www.gedoh.org/aki/2ch/current/bbs/read2ch.h 内の #define RAWOUT 直前に仕様書あり

imodeでもいろいろ使いやすくする
 >>633-635 >>637-640 >>642-645 >>652-654

mmapまわりを軽く
 >>620 >>630

板別設定(内部で)
 >>617

多言語対応
 >>627 >>628 >>641

FORCE_304_TIME を鯖負荷に応じて動的に変更する

deflate
 そのうち対応(実用困難らしい >>393

mmap時にlockすべきか(bbs.cgi側と協働で作業できるときに)
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=139&to=139&nofirst=true
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=425&to=425&nofirst=true
 >>406

656 :デフォルトの名無しさん :01/09/23 00:09
>>655
ETagに関してはどっかにHTTPバージョンをどうやって
取得するの? って話がなかったっけ?

657 :名無し娘。 ◆vP.bOZFQ :01/09/23 00:19
>>656
>>574-579 あたりじゃまだ解決してないのかな。。。
それとは別の話だったりして(汗

658 :デフォルトの名無しさん :01/09/23 00:21
>>657
案は出てますけどまだ実際のコードは入ってないみたいです。
need_etag()参照。

659 :デフォルトの名無しさん :01/09/23 00:26
>>654
ブラウザ版で「出さなくなった」のはCHUNK_ANCHORに合わせるために
やむなくやったことなんだ。
前の一個が見えた方が俺には嬉しかったんだけど、文句出てないね。

imode使いの人に具体的な要望を出して欲しいんだよね。
次10だせやゴラァと、前10が欲しい以外で具体的なの見たことない。
俺が見逃してるだけかな?

box出して番号いれたらジャンプできるとimodeで便利かなとか思ったり
するんだけどね。
N210i使ってるけどi-mode契約してないから、実際の操作感が全然わからん。

660 :名無し娘。 ◆vP.bOZFQ :01/09/23 00:40
>>658
フォローありがとうございます。

...ということで、ETag に関して >>656-658 もよろしくです>みなさま

661 :デフォルトの名無しさん :01/09/23 01:17
前スレよりコピペ。iモード使いはnofirst=trueのほうが
ありがたいと思う確率が高いと思われ

123 :- :01/08/29 02:07 ID:lLO5yHHU
imode=true のとき、先頭に [最新レス10] が出るけど、ls=10 は不要。

その変わりに、nofirst=true が付いてたほうが使いやすいと思うのだけど
いかがですか?

125 :名無しさん@MZ-2000 ◆Ewz1Jtuw :01/08/29 02:13 ID:nZtnifzg
>>123
nofirst=true に激しく同意。
imode 時に 1 がデカイと後ろが見れなかったりするんで
1 いらないです。

662 :デフォルトの名無しさん :01/09/23 01:25
>>661
抜き出しありがとう。

123は、最新レス10は/niにしなさいってことだな。
ほっとけば、ls=10だからl10は削れると。

663 :デフォルトの名無しさん :01/09/23 02:35
imode用PREV_NEXT_ANCHORをcommitした。
つでに、1-100nでのnofirst=trueを無効にした。
/nだけ/2-になるが、まあいいか。(w

imodeの現状は、
上:■掲示板に戻る■ 1- 最新10
下:次10 前10 最新10

imodeの人に意見求む。
最新10は上下に必要ですか?
次10 前10 最新10の順番はこれでいいですか?

664 :デフォルトの名無しさん :01/09/23 05:25
>>641
ENGLISH が定義されていると r2chhtml_en.h をincludeし、
日本語リテラルで残ってたものを r2chhtml.hに移動した。
SJIS判定部分のような日本語処理部分がまだ残ってるけど。
あと、TZ環境変数の設定内容はread2ch.hに移動(CONFIG_TIMEZONE)。

665 :デフォルトの名無しさん :01/09/23 05:46
>>664
please add HDRS r2chhtml_en.h in Makefile
please "cvs add r2chhtml_en.h" and commit

TZを下手にいじると混雑時の判定で困るかも。

666 :665 :01/09/23 05:54
あ、英語化はしてないのかな。
とりあえず、r2chhtml.hのコピーをcommitしておいた方がいいんじゃない?

667 :664 :01/09/23 07:26
コピーするのもまた、まだ定義増えたりするときに保守がややこしくなるので
実際に着手するまではコピーしないほうがいいと思って。
HDRSへの追加と、ダミーファイルの追加だけはやっときました。

668 :664 :01/09/23 07:31
>>665
混雑時の判定にもまぎらわしくないように、TZ定義はread2chhでLIMIT_PM/AMの
定義に並べて置いてます。

669 :デフォルトの名無しさん :01/09/23 08:59
>>617
readSettingFileを以下のように修正:
if (fd >= 0) {
 :
}
となってる部分を
if (fd < 0)
 return;

に変更

char const *cptr;
char const *endp;
struct stat st;
を関数の先頭に移動

#ifdef USE_INTERNAL_SETTINGS
void *mmptr;
struct _setting setting;
for (setting = special_setting; setting->board_name; setting++) {
 if (!strcmp(bbsname, setting->board_name))
  break;
}
if (!setting->board_name)
 return;
mmptr = setting->settings;
st.st_size = strlen(mmptr);
#else
char fname[1024];

st.st_size = read(fd, mmptr, 8192);
#endif /* USE_MMAP */
#endif /* USE_INTERNAL_SETTINGS */

関数末尾の#ifdef USE_MMAP〜#endifを
#ifndef USE_INTERNAL_SETTINGSで囲む。

注意点は、settingsの文字列は>>617そのままではなくて
最後に'\n'が必要なこと。

670 :デフォルトの名無しさん :01/09/24 01:06
>>630
mmapの変更(サイズ, READONLY, SHARED)、
>>632
setvbufを一応、
>>574-579
ETagでHTTP/1.1チェック、
>>669
USE_INTERNAL_SETTINGS

を組みこんだ。

671 :イラストに騙された名無しさん :01/09/24 01:12
>619 >629 >631
ver5.23 でも、過去ログ見つけるの失敗してます。
ttp://choco.2ch.net/dancesite/kako/100/
ttp://choco.2ch.net/dancesite/kako/100/1001164016.html
ttp://choco.2ch.net/test/read.cgi?bbs=dancesite&key=1001164016
ttp://choco.2ch.net/test/read.cgi/dancesite/1001164016/

672 :デフォルトの名無しさん :01/09/24 01:41
結局単純に先頭3桁取ればいいのか?

#ifdef NEW_KAKODIR
#else
void kako_dirname(char *buf, const char *key)
{
sprintf(buf, "%03d", tm);
}
#endif

こんなconditionでも組み込んでとりあえずOFFに
しておきましょうか。

673 :デフォルトの名無しさん :01/09/24 01:48
某2chブラウザを作っているものですが、raw=0.0のCGIパラメータを渡して
DATを取得すると、一番最後の部分に本来の(非rawの)モードで出力するHTMLの
内容が付加されてしまっているようです。

1行目に出力されるサイズを見て無視できないこともないのですが、
やはり余計なデータは転送しない方が良いと思います。

やっと全板にrawモード対応のread.cgiが入り、これから各2chブラウザの
対応も進むと思いますので、是非対応の方お願いします。

674 :デフォルトの名無しさん :01/09/24 02:08
>>673
ver5.23では直ってるはず。過去ログ見れ。

675 :イラストに騙された名無しさん :01/09/24 02:09
500番あたりの発言ね。

676 :デフォルトの名無しさん :01/09/24 02:09
>>672
いつ頃、どういう形で移行するかわからないので、両対応しておいた方がいいと思います。
ということで、過去ログ検索関数製作中。

>>673
本当に申し訳ありません。
ver5.22のバグで、ver5.23(chocoにインストール済み)では修正されています。
サイズを見て後ろは捨ててください。
詳しくは、>>498-502を見てください。

677 :デフォルトの名無しさん :01/09/24 02:18
作ってcommitする寸前だったけど、どう?
/* 旧形式 /bbs/kako/100/1000888777.htmlに対応。
dokoにpathを作成する
.htmlだけで充分だとは思うが・・ */
static int find_old_kakodir(char *doko, const char *key, const char *ext)
{
 struct stat CountStat;
 sprintf(doko, KAKO_DIR "%.3s/%.50s.%s", zz_bs, key, key, ext);
 return stat(doko, &CountStat) == 0;
}

html_error()
  if (!stat(doko, &CountStat)) {
→ if (!stat(doko, &CountStat) || find_old_kakodir(doko, tmp, "html")) {

678 :デフォルトの名無しさん :01/09/24 02:26
>>677
READ_KAKOのfnameを作成してやらないといけないので、
datを発見した所をdokoに入れてくれる形のものも必要です。

679 :デフォルトの名無しさん :01/09/24 02:33
あ、それで充分ですね。
if(!find_old_kakodir(fname, tmp, "dat"))
 新形式fname作成
でOKかな。

680 :673 :01/09/24 02:34
>>674 >>676
すんません、思いっきりガイシュツでしたか。申し訳ないです。

ところでsubject.txtの圧縮転送もサポートしてもらえると、
スレ一覧更新時の転送量削減(ブラウザにとってはレスポンスup)が
見込めるのですが、どうでしょうか。

bbspinkだけはmod_gzipが使えるのですが、それ以外は相変わらず
無理みたいなので。

681 :677 :01/09/24 03:00
よければ、誰かcommitしちゃってください。

682 :デフォルトの名無しさん :01/09/24 03:08
>>681
もうすぐcommitします。やっとテストが終わった。
rawモードのエラーでdokoを渡してますね。
そのままdokoを出してますが、最終的にはkako/nnnnnにすることに
なると思います。
read.cgiが過去ログ読みにならないと変えられないかな。

683 :デフォルトの名無しさん :01/09/24 03:22
>>680
ダイジェストを部分的に復活させましょうか。
http://piza2.2ch.net/test/tech/?raw=0.0
で tech の subject.txt を生のまま返す。

684 :683 :01/09/24 03:22
間違い。
http://piza2.2ch.net/test/read.cgi/tech/?raw=0.0

685 :デフォルトの名無しさん :01/09/24 03:31
>>683 こうすればいいはず。

/* スレ一覧を取りに逝くモード */
if (1 <= path_depth && path_depth < 3
#ifndef USE_INDEX
&& rawmode
#endif
) {
sprintf(fname, "../%.256s/subject.txt", zz_bs);
zz_fileLastmod = getFileLastmod(fname);
}

686 : ◆YaKIN/eo @夜勤 ★ :01/09/24 04:02
ん?
この状態は、切がいいのかな?

687 :デフォルトの名無しさん :01/09/24 04:17
>>686
ご苦労様です。
一応、問題ないはずです。

主な変更点は、
・内部に板ごとの設定を指定できる。
・imodeで前10次10が付いた。
・現在の過去ログの場所に対応した。
入れるときに、read2ch.hのSPECIAL_SETTINGの内容を
ちょっと検討してみてください。

688 : ◆YaKIN/eo @夜勤 ★ :01/09/24 04:32
今日はもうおねむになったので
急いては事を仕損じるということで
明日の夜(つーか今晩か、もう)やりまーす。

689 :デフォルトの名無しさん :01/09/24 08:13
>>685
あてた
しかしsubject.txtのときにはraw=パラメータは0.0に限定して使うように注意かな。

690 :デフォルトの名無しさん :01/09/24 14:45
「2ちゃんiモード」にある
「頁BOTTOM」 (先頭にあり、末尾にある#BTMへ)と
「頁TOP」(末尾にあり、先頭にある#TOPへ)って
iモードに限らず便利そうな気がするけどどう?

691 :デフォルトの名無しさん :01/09/24 17:02
>>680
いまだに bbspink 以外で mod_gzip が使えないのはなんで?
批判要望板の案内では

>これら文字化けの不具合は、MOD_GZIPが導入されると同時に解消されます。
>※来週末になる見通しです。

って前から書いてるのに.

692 :デフォルトの名無しさん :01/09/24 19:24
>>690-691
スレ違い

693 :うーん :01/09/24 20:19
agew

694 :デフォルトの名無しさん :01/09/24 20:21
>>1-10
のような1を含む複数レスへのアンカーで1が消えてしまいます。
おそらく複数レスへのアンカーの際nが無条件に付加されてるのだと思いますが、
これは仕様でしょうか?

695 :デフォルトの名無しさん :01/09/24 20:40
>>694
バグです。create_link()の
if (nf && (st!=to || ls))/* 単点は'n'不要 */

if (nf && (st!=to && st > 1 || ls)) /* 単点または1を含むときは'n'不要 */
に変えればいいと思われ

696 :批判要望より :01/09/24 22:05
329 :名無しさんの声 :01/09/24 22:03 ID:f9UAKBCQ
>>328
要望なんですけれども、長すぎるレスは自動的に
カットしていただきませんかね?
続きが読みたい場合は「クリック」みたいに
していただければ非常にうれしいのですが・・・

よろしくおねがいします

697 :デフォルトの名無しさん :01/09/24 22:07
696はiモード版の話です。

iモード版のメニュー
http://teri.2ch.net/test/read.cgi/accuse/968935230/329

698 :デフォルトの名無しさん :01/09/24 22:08
>>692
690はスレ違いじゃないぞ。
でも、下にアンカーを色々出しているから、なくても困らんと思うが。
混雑時はわざと不便にしてあるから、頁TOPつけると転送量増えるんじゃないかな。

>>694-695
最新版では、1-10nでも1を表示するようになっています。
矛盾した指定を出すなって言われれば、そうではあるが。

699 :デフォルトの名無しさん :01/09/24 22:20
697のリンクをクリックしたら簡易表示になったけど、
違うスレから呼ばれた時も簡易表示になるんでしたっけ?

700 :デフォルトの名無しさん :01/09/24 22:23
>>698
1バイト減らせるし、矛盾した指定は出さないほうがいいと思う。
5.22では&nofirst=trueを出してなかったんだし。

701 :デフォルトの名無しさん :01/09/24 22:26
http://teri.2ch.net/test/read.cgi/accuse/968935230/330
330 :329 :01/09/24 22:06 ID:f9UAKBCQ
>>329
記号の羅列もカットしていただけると非常にうれしいです・・
携帯からだとAA見ても訳がわからないので、、、

702 : ◆YaKIN/eo @夜勤 ★ :01/09/24 22:48
投稿内容を改変するような仕組みは、あまりよくないと思います。
一律に長いのを省略する というのならば良いかも知れませんが、

今回の一連の改造には含めないことにしましょう。

703 :デフォルトの名無しさん :01/09/24 22:54
>一律に長いのを省略する というのならば良いかも知れませんが、

ということは>>696はOK?
bbs.cgiでも
(省略されました・・全てを読むにはここを押してください)
はやってますし。下手に改造すると無限ループになりそうだけど。

704 :デフォルトの名無しさん :01/09/24 23:02
>>699の件
 ref = getenv("HTTP_REFERER");
 if (!ref || !*ref)
  return false;
 return true;

なんだこれ?
どういう理由でこんなふうにしたんだ?
他のスレへのリンクだったら、
その後に全部読んでみたい等に備えて
カットしないようになっていたはずなのに。

705 :デフォルトの名無しさん :01/09/24 23:07
>>704
ゴミじゃないの? その後を無効にする意図があるなら
conditionになってるはず。削除しちゃっていいと思われ
あと>>695もcommitきぼん。

706 :デフォルトの名無しさん :01/09/24 23:29
>>705
あてた。

707 :デフォルトの名無しさん :01/09/24 23:39
夜勤さん見てたらそろそろお願いします。

>>687以降の変更点は
http://piza2.2ch.net/test/tech/?raw=0.0 で圧縮された
 subject.txtを返す。
・>>nnnが1を含んでいるときは'n'を出力しない。
・他スレからのリンクは簡易表示にしない。
です。
SPECIAL_SETTINGは、削除依頼板で>>nnnのリンクを
カットしないようになっています。

708 :また間違えた :01/09/24 23:39
http://piza2.2ch.net/test/read.cgi/tech/?raw=0.0 で圧縮された
 subject.txtを返す。

709 : ◆YaKIN/eo @夜勤 ★ :01/09/25 00:40
はーい、やりますー。

http://www.gedoh.org/aki/2ch/current/bbs/
ここで いいのかな?

710 :デフォルトの名無しさん :01/09/25 00:46
>>709
ご苦労様です。
そこのでOKです。

711 : ◆YaKIN/eo @夜勤 ★ :01/09/25 00:52
皆様 いつもありがとうございます。

read.cgi ver5.24 (01/09/25) が choco に入りましたー。

やったー。

712 :デフォルトの名無しさん :01/09/25 00:59
お疲れさまです。

チェック用リンク
http://choco.2ch.net/test/read.cgi/ainotane/1000457087/353

713 :デフォルトの名無しさん :01/09/25 01:03
・他スレ参照でも簡易表示になるのが直ってないような…

714 :デフォルトの名無しさん :01/09/25 01:05
>>713
712のリンク先は簡易じゃないでしょ。
向こうからのリンクは、ver5.23が処理するから直ってません。

715 :713 :01/09/25 01:07
あ、そうか。スマソ

716 :デフォルトの名無しさん :01/09/25 01:09
tag打ちたいんだけど、cvsサーバーが落ちてるっぽい。

717 :デフォルトの名無しさん :01/09/25 01:50
>712のリンク先は簡易じゃないでしょ。
712のリンク先が簡易表示なのは俺だけ?
Ver5.24でFORMが出ないんだけど。

718 :デフォルトの名無しさん :01/09/25 02:00
結局どの程度速くなったの?

719 :717 :01/09/25 02:02
ごめん、たぶん俺だけだ。
http://mentai.2ch.net/test/check.cgi
これで、REFERERを確認したら、
どうも勝手にrefererが設定されてしまって、
しかもキャッシュされてNotModifiedになっているだけみたい。
ツールでリンク先をShellExecuteして読んでるんだけど。

720 :イラストに騙された名無しさん :01/09/25 02:47
「簡易表示」時
<html><head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
が無くて、いきなり <title>からになってる・・・

721 :デフォルトの名無しさん :01/09/25 02:55
理論的にはどれも必要ないけどね。
強いて言うなら文字コードの指定がないと文字化けする
危険があるくらいか。

722 :aki :01/09/26 02:32
えーん。ごめんなさい。
cvs鯖ディスクトラブルで落ちてます。
明日の夕方までには何とかがんばって直したいです...

/bin/sh が read error (泣)

723 :デフォルトの名無しさん :01/09/26 16:51
tag YAKIN20010925 打ちました

724 :デフォルトの名無しさん :01/09/26 18:25
レス指定の >> が、&gt; じゃなくて > になってるんですが
これは良いのでしょうか?

725 :デフォルトの名無しさん :01/09/26 18:50
>>724
いいんです。 >>414

726 :デフォルトの名無しさん :01/09/26 20:33
すいませんー。サーバーアドレス変わってます。
210.170.179.110
です。>ftp

# DiCEでちゃんと定期的に監視する設定にしたと思ったのだけど・・・・。
# うーむ、設定ミスか・・・。

たびたび混乱させて申し訳ないです。

727 :デフォルトの名無しさん :01/09/26 20:33
以前のまとめは >>655
残ってるのは、英語版と >>720 ぐらい?

imode回りはどうしましょうか。

728 :デフォルトの名無しさん :01/09/26 20:46
<html><head></head></body></html>
は全部省略でいいと思うんですがどうでしょうか。
HTML 2.0の時代から省略可能なことになってるので
省略したことによって誤動作するブラウザというのは
考えづらいです。もちろんIEもネスケも問題ありませ
んし。

729 :デフォルトの名無しさん :01/09/26 21:45
<html lang="ja">
とか入れとくといい、かも(IE5.5でこれを入れとくとAAのズレが
直る……とかいうのがあったような……かちゅ〜しゃだけか?)。後は全て省略で。

730 :デフォルトの名無しさん :01/09/26 22:05
>>729
かちゅ〜しゃだけ。IEだとずれないのにかちゅ〜しゃだと
ずれるというのが直るに過ぎない。
IE5.5問題はフォントの設定をいじらないとダメ。

731 :デフォルトの名無しさん :01/09/26 22:41
>>720 を修正した。
ついでに、can_simplehtml()のバグを見つけたので修正。

732 :デフォルトの名無しさん :01/09/26 22:51
えっと、専用ブラウザ作者です
通信失敗したときのためにdat取得途中にもいったん保存したいと思ってるんですが、
datのサイズを計算するとき、\0も含めて\r\nまで数えれば計算合いますか??
それとも\r\nは含まず?

モバイル時、rawモードで一気に900近いレスを取得するのは難しいので・・・

733 :デフォルトの名無しさん :01/09/26 22:57
datの改行は\r\nじゃなくて\nです。
もし\r\nに見えてるとしたらお使いのライブラリか何かが
勝手に変換してるということなのでそのままでは絶対に
計算合いません。

それはそれとして、rawモードでも部分取得に対応したほうが
いいのだろうか。こういう意見もあるし。

614 :作者 本日のレス :01/09/26 01:16
つまり、最新50とか、10-30までとかいった読み方は考えていないということか。

734 :732 :01/09/26 23:00
失礼、\r\nは単純にそう思っただけです(^^;
実際には\nでしか判定してません

735 :デフォルトの名無しさん :01/09/26 23:31
5.24が各鯖にインストールされた模様。
SPECIAL_SETTINGが動作しているのを確認。

混雑時の設定は、22-03のようだから、
read2ch.hも合わせておいた方がいいかな。

736 :729 :01/09/26 23:32
>>730
Thanks.
やっぱりかちゅだけだったか……個人的には言語指定位入れといても
いいような気がするけど、まぁ全部省略だろうな、ここは(何)。

737 :デフォルトの名無しさん :01/09/27 02:54
READ_KAKO/READ_TEMPには問題がいくつかある。

第一に、READ_KAKOがdefineされていないときには
READ_TEMPをundefしているが、
これはプログラム上の都合であって、動作としては望ましくない。
実際には、kako/はhtmlを読めばよいので閲覧禁止にしてあっても、
datでしか読めないtemp/は(特にdat直読みが禁止されると)
閲覧を許可するという状況は十分に考えられる。
逆は考えにくいので、逆になっていればよかった。

次にREAD_KAKOをrawmodeでも一律に扱っているが、これはどうだろうか。
ツールを使っていても、倉庫送りにされたログを読む場合には
結局datに直にアクセスすることになる。
大半が取得済みのdatの場合は、圧縮をあきらめて差分取得する
ことになってしまうし、
全体を新規取得する場合でも、圧縮はmod_gzipとその設定次第となる。
何より、直読み禁止になったらどうしようもない。
「rawmodeのみ過去ログ取得を許可する」conditionを設けるべきだと思う。

さらに細かい点を指摘すると、read.cgiで過去ログを読む事を前提とするなら
過去ログのdatがどこにあるかなど、ユーザーには関係ない。
kako/とtemp/でわけて指定させる必然性は全く無い。
もっとはっきり言えば、READ_KAKOが有効な場合には、
key=999999999を指定するだけで透過的に過去ログにアクセスできる方が
はるかに望ましい動作といえる(もちろん、書きこみは不可にする)。
しかも、これならリンクのkako対応やpath_depth操作も不要になる。
(逆に、ツールに過去ログ化を知らせるためのサインが必要になる)
転送量を問題視するなら、混雑時間帯以外とRAWMODE時のみ
透過的アクセスとする手もあるだろう。

最後に、これが最も重要だが、過去ログの形式が一定ではないという点がある。
teri,cornなどは過去ログも全て"<>"区切りだが、
mentaiから始まりpiza,saki,...等の古いログは
全て","区切りのdatが保持されている。
最も早くログ変換が始まったpizaでも5月初めで、他のサーバーはもっと遅い。
mentaiなどは大半が旧形式であると言える。
現行のparseルーチンでは、動的なデリミタ変更には対応していないので、
全て「ここ壊れています」になるだろう。
(過去に2、3度、bbs.cgiのバージョンを間違えたために
teriなのに数分間の投稿だけがsaki形式になっているdatもあるが、
これは「壊れたスレ修復」スレへ行けばよいかもしれない)
負荷との相談になるが、本気でちゃんと過去ログ読みに対応するのならば、
リンク先が無効になることより、こちらの方がずっと重要だと思うのだが。

738 :デフォルトの名無しさん :01/09/27 02:55
で、READ_KAKO,READ_TEMPの優先順位を直し、
rawmode時に対応し、temp/を廃止して一律kako/に、
等をやってみようとしたのだが、面倒になってやめた。

代わりに、AUTO_KAKOを作った。
(変更は多くないので、新しく作る方が楽)
AUTO_KAKO_MODEを数値としてdefine(SETTING_FILE可)し、
 0 = RAWモード時のみ、temp/,kako/どちらのdatも取得可能
 1 = RAWモード以外は、temp/のみ閲覧可能
 2 = RAWモード以外でも、temp/,kako/どちらも閲覧可能
とする。
過去ログに対しても全く同じようにkey=999999999の指定で
(スレスト扱いで)アクセスする。
ただし、今のところ、rawmode以外は(#if 1で)混雑時間帯外に制限してある。
READ_KAKOと排他ではないので、どちらも指定できる。

ログ形式の違いには対応していないが、
もし、READ_KAKOかAUTO_KAKO_MODE=2となることが想定されるなら、
#ifdef AUTO_LOGTYPE等として自動判別することも
そんなに難しくはないと思われる(負荷が少し大きくなる可能性あり)。

その他の変更点は、
・find_old_kakodirと同形式でfind_kakodirとfind_tempdirを作り、
 html_errorをif-elseif-else で並べた(RAWOUTも)。
・mainでファイル名を作るところがごちゃごちゃしてきたので
 create_fnameとして独立させた。
・他、細かい修正を少し。

それと、>>671の過去ログ探しが正常に動いているか確かめようと思ったら、
Ver5.23の「そんな板orスレッドないです」がでてきた。
キャッシュに残っていてNotModifiedが返ったからだが、
getFileLastmodが-1を返した(ファイルが見つからない)時は
LastModifiedを出力せず、304も返さないようにした。

739 :デフォルトの名無しさん :01/09/27 02:59
そうだ、
スレッドストッパーの判別に
「移転したよ」
もあった方がいいかも。
(1に書いてあるので有効なのは移転直後だけだし、実際には書きこみ出来るが)

740 :デフォルトの名無しさん :01/09/27 06:37
LIMIT_PMを22時にした。
"移転したよ"をストッパー判定に加えた。
AUTO_KAKO時に注意を表示するようにした。
AUTO_LOGTYPEを作った。
レス1に<>が含まれるかどうかで判定するので、
途中で一部変化しているものには対応できていない。

741 :デフォルトの名無しさん :01/09/27 11:58
</title>の前に空白入れれ

742 :デフォルトの名無しさん :01/09/27 12:04
>>741
それよりタイトル末尾の空白もCUT_TAIL_BLANKの
対象にしたほうがいいと思われ

743 :デフォルトの名無しさん :01/09/27 12:51
>>742
splitting_copy(というかressplitter_split)が各フィールド切り出すときに
統一的に末尾空白カットと空白の追加やってるようだから
すでに大丈夫と思われ

744 :名無し :01/09/28 00:06
iモードで Next Page やるとURLが見つからないみたいです。
アドレス間違えていませんか?

http://news.2ch.net/news/i/

745 :デフォルトの名無しさん :01/09/28 00:21
おの〜最新レス50を押しても最新でないんですけど、
また最新50もなんかおかしい。
バグですか?

746 :デフォルトの名無しさん :01/09/28 00:29
>745
おめーの環境が悪い。
買い替えろ

747 :デフォルトの名無しさん :01/09/28 01:21
ページ上部の1-、101-、…が相対リンクなため、
http://ebi.2ch.net/test/read.cgi/nohodame/993580528/288-/
こういうリンクで飛んだとき、1-、101-、が効きません。

748 :デフォルトの名無しさん :01/09/28 02:22
>>744
pageview.cgiはこのスレでは扱っていません。
>>745
どのスレで起きた等、詳しく説明してもらえると助かります。
>>747
こっちならうまくいきます。
http://ebi.2ch.net/test/read.cgi/nohodame/993580528/288-
最後に余分な'/'が入っている時は、
../をつけるか、無効扱いするか、どうしましょう。

749 :デフォルトの名無しさん :01/09/28 06:46
>>748
後ろに余分なものがついているときは旧形式で呼ばれたとき同様に
R2CH_HTML_BASE_DEFINEを出すとか…

750 : ◆YaKIN/eo @夜勤 ★ :01/09/28 14:44
いつも、ありがとうございます、

ところで、誰か core dump はくんですよ、read.cgi か bbs.cgi のどちらかだと
思うんですが、、、

時間あったら調べてみてください、

751 :デフォルトの名無しさん :01/09/28 16:08
>>750
 strings core | grep REQUEST
とかが可能でしたら、悪者が特定できてcore dumpの条件も判るのですが。

752 :デフォルトの名無しさん :01/09/28 16:29
bbs.cgiってPerlではなかったでしたっけ? となるとcore吐くのは
read.cgiじゃないかと思いますが gdbが使えれば
  $ gdb read.cgi core
と打ち込んで
  (gdb) bt
  (gdb) q
で出てくる結果から目星が付けられるかも知れません
coreを吐くプログラム名自体は gdbを起動した時に
  Core was generated by `hoge.cgi'.
のように表示されます

753 : ◆YaKIN/eo @夜勤 ★ :01/09/28 19:45
choco に strip してない read.cgi 入れたので、 core 吐かれたら
調べてみまーす。

754 :デフォルトの名無しさん :01/09/28 19:47
getLineMax()がちと怪しいので、一応差し替えてみたけど、どうかなあ。

755 :デフォルトの名無しさん :01/09/28 19:52
てゆーか、ミラーが死んでるから、変更点がわからないか。
do {
 ・・・
 p = (char *)memchr(p, '\n', p1-p) + 1;
} while(p != p1);
が、途中であぼーんが入るとpが死ぬ可能性があるので、
do {
 ・・・
 p = (char *)memchr(p, '\n', p1-p);
 if (p == NULL)
  break;
 ++p;
} while (p < p1);
に直した。

756 :デフォルトの名無しさん :01/09/28 20:31
datの書き込み時にどういう処理をしているのかわからないけど
もし open("hoge.dat", O_WRONLY|O_TRUNC) or fopen("hoge.dat", "w")
に相当するようなやり方でオープンして書き込んでたりすると
その書き込み中にread.cgiでBigBufferを参照すると
  ファイルの終端より後ろの領域を参照 -> SIGBUS or SIGSEGV
ということもあり得るんだな...... 例のmmap時のlock問題

757 :デフォルトの名無しさん :01/09/28 21:18
bbs.cgiに関してはそんな.dat消失の危険があることは
やらんでしょう。普通はO_APPENDを使うと思われ
流出スクリプトもそうなってるし。
ただ削除系のスクリプトはぁゃιぃかも。

758 :デフォルトの名無しさん :01/09/29 01:31
非常に簡単なテストプログラムを作ってみたのだが・・・

255個の空白と改行を1行とし、
1)まず新規にファイルを16*4行分作成し、閉じる
2)次にファイルサイズ+10バイトをPROT_READ,MAP_SHAREDでmmapする
3)マップされた領域をスキャンし、行数と最初に'\0'が現れる位置を表示する
4)次に同じファイル名で(マップしたまま)16*1行分作成し、閉じる
5)3)を繰り返す

この結果は3の時と5の時で異なり、
どちらも実際のファイルの行数(64と16)を報告し、
最初に'\0'が見つかったのは、ファイルサイズの次の位置だった。
どちらも実際のファイルサイズを超え、ページ境界をまたいでいるが、
coreは吐かなかった。
(ページ境界をまたがない時でも、
'\0'が最初に現れた位置はファイルが終わった位置だった)

もしこれ(ファイルサイズ以上の領域には'\0'が入り、
マップされている間にサイズが小さくなっても'\0'が入る)が常に当てはまるなら、
map_sizeをほんの少し多めに取り、
BigBufferをスキャンしている最中に'\0'が現れた場合のみ、
オーバーしているかをチェックすればよいことになる。

とりあえず、これが成立するを仮定して、
dat_readとressplitter_splitを修正した。

759 :デフォルトの名無しさん :01/09/29 03:32
ファイルを書きかえるプログラムとの協調ができない限り
どうやろうが危険は残る。
ターゲットOSがいつまでも同じとは限らない。
未定義部分の振る舞いなんか利用したら、後で必ず痛い目にあう。

削除ツールとかを変更できるまでは、mmapの使用はあきらめた方がいいんじゃない。

760 :デフォルトの名無しさん :01/09/29 04:08
振るまいが違ったらその時直せばいいじゃん。
納品して終りじゃないんだから。

それと「mmapの使用」と「MAP_SHAREDの使用」は等価ではないよ。

761 :デフォルトの名無しさん :01/09/29 08:35
cvs鯖落ちてる?

762 : ◆YaKIN/eo @夜勤 ★ :01/09/29 14:37
umm
choco にまだ、 core できてませんでした、
観察継続中。。。

763 :デフォルトの名無しさん :01/09/29 15:54
read.cgi の不具合報告です。
http://piza2.2ch.net/test/read.cgi/tech/1000035521/627
http://piza2.2ch.net/test/read.cgi/tech/1000035521/627/
どちらも同じ書きこみが表示されますが
下のURLだと
「■掲示板に戻る■ 全部 1- 101- 201-・・・・」
とか
>>123
などのリンク先がおかしいです。
(それともこのような指定方は想定外?)

764 :デフォルトの名無しさん :01/09/29 15:56
がいしゅつです。>>747-749
で、
・エラーにする
・R2CH_HTML_BASE_DEFINEを出す
どちらにしましょうか。

765 :デフォルトの名無しさん :01/09/29 16:55
>>764
BASE出すほうに一票

766 :デフォルトの名無しさん :01/09/29 19:15
>>732-733にあるようなdatの部分取得と、
subject.txtの上位50件取得等に対応するために、
raw=0.0時のみ、
st,to,lsを参照して要求された部分のみを返すようにすることを考え、
RAWOUT_PARTIALとして試験的に加えてみた。
(nofirstは無視したので、ls=nn時にはレス1は送信されない)

ls=nnに対応するために、送信するレス番の範囲を教える必要があり、
是非次回は続きを差分取得して欲しいから、
dat全体の中でどの部分にあたるかの、位置と範囲も返したい。
となると、部分取得時は返信ヘッダがかなり窮屈になってしまう。

実行した場合のヘッダ("/512K"以後の区切りはTAB)。
 /tech/?raw=0.0&to=50 #subject.txtの範囲指定にpathは使えない
+PARTIAL 2441/512KRange:0-2440/22735Res:1-50/478
 /tech/998845501/?raw=0.0 #今までと同じ
+OK 297551/512K
 /tech/998845501/50-99?raw=0.0
+PARTIAL 11767/512KRange:12226-23992/297551Res:50-99/883
 /tech/998845501/l50?raw=0.0
+PARTIAL 27967/512KRange:269584-297550/297551Res:834-883/883
 /tech/998845501/l20000?raw=0.0 #強引に全部送信
+PARTIAL 297551/512KRange:0-297550/297551Res:1-883/883
(本物のログとサイズが違うのは、手動でいじったからなので気にしない)

返信するステータス等を勝手に決めるのも心苦しいので、
返信コードやフォーマットなども含め、意見求む。

767 :デフォルトの名無しさん :01/09/29 19:17
cvs使えないので、ここに書いて意見を聞く
int dat_out_raw(void)
{
 const char *begin = BigLine[0];
 const char *end = BigLine[lineMax];
 char statusline[512];
 char *vp = statusline;
#ifdefRAWOUT_PARTIAL
 int first = 0, last = 0;
 if (raw_lastnum == 0 && raw_lastsize == 0
  && (nn_st || nn_to || nn_ls > 1)) {
  /* nn_xxはnofirstの関係等で変化しているかもしれないので再算出 */
  int st = atoi(zz_st), to = atoi(zz_to), ls = atoi(zz_ls);

  first = 1, last = lineMax;
  if (ls == 1)/* for Ver5.22 bug */
   ls = 0;
  if (ls)
   st = lineMax - ls + 1;
  if (0 < st && st <= lineMax)
   first = st;
  if (0 < to && to <= lineMax)
   last = to;
  if (first > last)
   last = first;

  begin = BigLine[first-1];
  end = BigLine[last];
  vp += sprintf(vp, "+PARTIAL");
 } else
#endif
 /* ・・・ */
 if (・・・) {
  ・・・
 } else {
  ・・・
 }
 vp += sprintf(vp, " %d/%dK", end - begin, MAX_FILESIZE / 1024);
#ifdefRAWOUT_PARTIAL
 if (first && last) {
  vp += sprintf(vp, "\t""Range:%u-%u/%u",
   begin - BigLine[0], end - BigLine[0] - 1, BigLine[lineMax] - BigLine[0]);
  vp += sprintf(vp, "\t""Res:%u-%u/%u", first, last, lineMax);
 }
#endif

768 :デフォルトの名無しさん :01/09/29 19:17
続き
#ifdefAUTO_KAKO
 {
  static char *messages[] = {
   "",
   "\t""Status:Stopped",
   "\t""Location:temp/",
   "\t""Location:kako/",
   /* 正確な位置を知らせる必要はないはず */
  };
  int where = zz_dat_where;
  if (where || isthreadstopped())
   where++;
  vp += sprintf(vp, "%s", messages[where]);
 }
#endif
 pPrintf(pStdout, "%s\n", statusline);
 ・・・
}

769 :デフォルトの名無しさん :01/09/29 19:45
subject.txtのraw=0.0時の出力内容は、意味的には1が最新だし、
途中からの受信はそれまでの取得済み内容の続きにできないので
st, toは無視して、lsで先頭からの個数を指定するほうが
より良いような気もする。

770 :デフォルトの名無しさん :01/09/30 00:23
かちゅ〜しゃのgzip対応化DLLを作っている者です。
現在のrawモードの仕様だと最終レス番号を指定しなくては
ならないので、これをログから取得しているのですが、
ディスク上のログがすぐには更新されないとか、
ログ保存をオフにしたりレス取得上限を設定したり
されると対応できないとか、いろいろ大変です。
http://piza2.2ch.net/test/read.cgi/tech/1000035521/?raw=.12345
のように、レス番号指定を省略しても(指定位置が
ちょうど行頭なら)差分だけを返すようにできないでしょうか?

771 : ◆YaKIN/eo @夜勤 ★ :01/09/30 02:57
以下のサーバに mod_gzip が導入それました。

mentai , saki/corn , cheese/cocoa , teri/ton , kaba , bbspink2
www/salami , salad , yasai , natto , ebi/curry

そこで yasai に read.cgi を /*#define GZIP*/ のようにコメントアウトして
コンパイルしたものを上げました。
本当はどうすればいいのかな? 教えてください、おねがいします。

772 :デフォルトの名無しさん :01/09/30 04:21
今、永らく読んでなかったかちゅスレ(18-19)を読んでます。
伸びが急激なので、まだ19の途中ですが。
proxyではなく、DLL対応とは結構驚きました。

で、できるだけ(他の人の同意があれば)対応する方向にしたいのですが、
現行のかちゅ〜しゃをサーバー側から見ると、2つ程欠点があります。
1つ目は、If-Modified-Sinceを付加していないこと
2つ目は、常に1バイト以上の送信をリクエストすること
です。
どちらも本質は同じで、更新がなくてもファイルI/Oの負荷が発生するため、
必要以上にサーバーに負担をかけることになっています。
多分、かちゅ〜しゃのidxに保存されているのは
サーバー側のLastModifiedではなく、ローカル側のGET日時だと思うので
難しいとは思いますが、可能ならば、If-Modified-Sinceをお願いしたいです。

実際の対応ですが、
まだwsockspyのソースもろくに読んでいないので
外れたことをいってるかもしれませんが、
その形式だと、最終の'\n'部をGETしないため、
リクエストのRangeが範囲を超える場合が頻発すると思います。
その場合、
・Rangeの範囲がファイルサイズジャストの次からだった場合
→304 NotModifiedを返す
としたいと思いますが、よいでしょうか?
また、
・Rangeの範囲が大きく超えた場合、及び、指定位置が行頭ではなかった場合
はどうしましょう?
かちゅ〜しゃでは、
あぼーん等でRangeが範囲を超えていて全体が返された場合でも
(ローカルあぽーん等の結果が無効となるため)
それを利用してログを再構築する事はせず、
常に「ログが詰まった」を表示しているように思います。
ですので、この場合はエラーが起きたことだけを知らせ、
全体は返さないようにしたいと考えていますが、
それでよいでしょうか?

773 :デフォルトの名無しさん :01/09/30 04:21
あと、「過去ログが取得できない」問題は、
read.cgi側でAUTO_KAKOをONにすれば即対応可能です。
夜勤さんにお願いするしかないですが。
こうなった場合、最初のGETで取得できなければ、
../kako/や../dat2/をGETするのは完全に無駄なので
DLL側で(302を返すよう)対処してもらえればと思います。
(-ERRの戻りが、「../kako/...で発見」の場合は非対応)

もう1つ、他のツールの作者さんも読んでいると思うので。
この形式での対応は、
Accept-Encoding: gzip
かつ、
User-Agent: Katjusha
の場合だけにしたいと思います。
これは、同様のリクエストは(レス番号さえわかれば)
RAWOUT_PARTIALで対応可能で、
そこで返されるRangeを見ればあぼーん等の検出も可能であり、
ツールの(ソースに触れる)作者から見れば
あまり必要のない機能だと思うからです。
かちゅ〜しゃユーザーののgzip移行を促すためにも
あえて厳しくしたいと思います。

774 :デフォルトの名無しさん :01/09/30 04:25
あ、以上は>>770でした。

mod_gzip導入については、
特に何もしなくてもいいと思います。
(全鯖導入されたら、index.htm/index.htmlチェックが不要になるので消しますか)
GZIPは、ZLIBが定義されていると再defineされちゃいますし。

775 :デフォルトの名無しさん :01/09/30 08:07
cvs復活してるね

776 :デフォルトの名無しさん :01/09/30 08:50
http://www.gedoh.org/aki/2ch/current/bbs/
がInternal Server Errorになるよー

777 :770 ◆DLL/lGHE :01/09/30 09:10
>>772-773
「Range:」ヘッダは削除して、?raw=nn.xxxxに変換しています。

>・Rangeの範囲がファイルサイズジャストの次からだった場合
>→304 NotModifiedを返す
>としたいと思いますが、よいでしょうか?

よって「+OK 12345/512K」みたいな1行だけが返ってくる
はずなのでとくに考慮は不要です。

内部的に、ファイルサイズジャストでも実際にファイルを読み込
んで処理しているとしたら、その内部処理だけを修正してインター
フェースは変えない(上記のヘッダ行を生成する)ようにしたほうが
いいのではないでしょうか。

>・Rangeの範囲が大きく超えた場合、及び、指定位置が行頭ではなかった場合
>はどうしましょう?

おっしゃる通り、エラーの通知のみでいいと思います。

>あと、「過去ログが取得できない」問題は、
>read.cgi側でAUTO_KAKOをONにすれば即対応可能です。

過去ログに関しては.datをmod_gzipの圧縮対象に指定するという
手もありますね(過去ログの差分取得はあまり行わないでしょう
から)。

>DLL側で(302を返すよう)対処してもらえればと思います。

今でも、「過去ログ倉庫で発見」以外のエラーのときは
無駄なリクエストが飛ばないように対処済みです。
ちなみに、BIG-serverではNot Foundだったとき404を返す
代わりに news.kakiko.com/mentai/ へ飛ばす(302を返す)
ようになっているので、302ではだめです。

778 :770 ◆DLL/lGHE :01/09/30 09:13
Last-Modifiedについては、ファイルサイズジャストのとき
中身を読まないように修正すれば結局stat一回だけなので
対応不要だと思っているのですがどうでしょうか?

779 :デフォルトの名無しさん :01/09/30 09:19
AUTO_KAKO関係、AUTO_LOGTYPE関係とその周辺を少し変えた。
rawmode時はget_title()等を呼ばないようにした。
subject.txt取得時と!busytime時はMAP_PRIVATEにした。
RAWOUT_PARTIALで、subject.txt取得時のみ、
lsがあってtoがなかったら、lsをto扱いするようにした。
Katjusha_DLL_REPLYを作った。

read.cにデバッグコードが残ってたらごめん。

>>778
LastModifiedの判定の他にサイズ判定をいれたので、要らなくなったです。

780 :デフォルトの名無しさん :01/09/30 09:26
>「Range:」ヘッダは削除して、?raw=nn.xxxxに変換しています。
あ、そういう意味です。

>よって「+OK 12345/512K」みたいな1行だけが返ってくる
>はずなのでとくに考慮は不要です。

これは、read.cgi側の都合です。
+OKを返すときは、通常、HTTPヘッダを全て出力した後、
さらにdatを読みこんで(行数を数える等もして)からなので、
サイズだけでNotModifiedが返せた方が楽だからです。
サイズだけで判定して+OKを返しても大差ないといえばその通りなのですが。

>ちなみに、BIG-serverではNot Foundだったとき404を返す
>代わりに news.kakiko.com/mentai/ へ飛ばす(302を返す)
>ようになっているので、302ではだめです。
「302を返す」は、そのつもり(404の代わり)で書きました。
かちゅ〜しゃは302に反応すると思われるので、
見つからない時にはDLLで細工してかちゅ〜しゃに302を返すという意味です。

っていうか、cvs修正した直後に>>777(おめでとう)を読んだので、
サイズジャストは+OKではなく、NotModifiedのままです。
直しましょうか?

781 :デフォルトの名無しさん :01/09/30 09:30
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342

782 :デフォルトの名無しさん :01/09/30 09:33
>+OKを返すときは、通常、HTTPヘッダを全て出力した後、
>さらにdatを読みこんで(行数を数える等もして)からなので、
>サイズだけでNotModifiedが返せた方が楽だからです。

なるほど。「+OK」を返してもらえると私(とかほかのツール
作者)が楽なので結局どちらが楽できるかの問題ですね。

>サイズジャストは+OKではなく、NotModifiedのままです。
>直しましょうか?

面倒でなければお願いします(^^;。

783 : ◆DLL/lGHE :01/09/30 09:36
782も私です。

よく考えたらレス数を求めるには中身を読まなくてはならないから
ほかのツールは関係ないですね。

784 :デフォルトの名無しさん :01/09/30 09:54
仕様書き忘れてました。
今(304を返す仕様)のところ、

・ファイルサイズと一致
304 Not Modified
Content-Type: text/plain
(ヘッダのみ)
・あぼーんされたっぽい(要求Rangeが大きすぎ)
-ERR どこかであぼーんがあったみたいです。
(非圧縮・この時はLast-ModifiedやContent-Encodingを出力しない)
・あぼーんされたっぽい(要求Rangeが大きすぎ)
-ERR どこかであぼーんがあったみたいです。
(ヘッダにLast-ModifiedとContent-Encodingが含まれる)
・続きあり
+OK 27967/512K
・・・

wsockspyのソースを見て問題なさそうだったので、
サイズだけをみてあぼーんが判断できる場合は
非圧縮で返すようにしています。

あと、304を返す代わりに
+OK 0/512K
にする方向にしますね。

785 : ◆DLL/lGHE :01/09/30 09:57
>・あぼーんされたっぽい(要求Rangeが大きすぎ)
2つありますけど下のは

・あぼーんされたっぽい(行頭ではない)
ですね。

786 :784 :01/09/30 10:02
>>785
ごめんなさい。その通りです。

ところで、他のツールの場合は
必ずIf-Modified-Sinceをつけてくると思いこんでいたので、
「raw=x.xでファイルサイズジャストの場合」というのは
あまり想定していなかったんですが、
もしかしたら、
raw=x.xのリクエスト全てに対して、
「ファイルサイズジャストなら+OKの行のみを返す」
ことを考えた方がいいかもしれませんね。
その方向で考えます。

787 :デフォルトの名無しさん :01/09/30 10:12
仕様が固まったらread2ch.hとconfig.txtの更新もよろしくー

788 :デフォルトの名無しさん :01/09/30 10:14
>>787
ChangeLogもね(o^-')b

789 :784 :01/09/30 10:35
>>786の変更を加えた。

うーん、でもよく考えたら、If-Modified-Sinceには
「実況禁止」効果を見こんでいた部分があるので、
できれば何か対策が欲しいところでもある。

>>787-788
これからやりまーす。

790 :デフォルトの名無しさん :01/09/30 10:45
>>786
OKのみの行を返すときでもLast-Modifiedはあったほうがいいような。
サイズは一致していても変更があったかもしれないし(まれだろうけど)

791 :784 :01/09/30 11:29
read2ch.h,config.txt,ChangeLogを更新しました。

Last-Modifiedはどうしましょ?
サイズを見てOKのみを返す場合は、
既にIf-Modified-Sinceのチェックをくぐってしまった時なので、
そういうUAにLastModifiedを返す必要があるかとか、考えたんですが。
まあ、出す分には全然かまわない気もします。
ただ、「偶然の一致」を減らすなら、レス数も数えた方がいいでしょうし。

あと、この場合にはContent-Lengthも返さないので
それも問題ありかもしれません。

792 :784 :01/09/30 11:46
サイズを見て+OKのみを返す場合に、条件として
「If-Modified-Sinceがなかった場合」を加えてみた。

793 :デフォルトの名無しさん :01/09/30 14:00
おお、mod_gzipはいったんだ。ご苦労様>>夜勤さん

Trying 64.71.134.194...
Connected to piza2.2ch.net.
Escape character is '^]'.
HEAD /tech/index.html HTTP/1.1
HOST: piza2.2ch.net
Accept-encoding: gzip, inflate

HTTP/1.1 200 OK
Date: Sun, 30 Sep 2001 04:55:31 GMT
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSS
L/0.9.3a
Content-Type: text/html

って 771みると piza2には前から入ってた?

794 :デフォルトの名無しさん :01/09/30 15:12
対応したread.cgiが導入されるまでの間、
かちゅーしゃでの巡回は
今まで以上に無駄な負担を鯖に強いることになるわけか。
巡回が重くなったって言われるのもわかる気がする。
mod_gzipで重くなったってのもあるだろうけど。

795 :デフォルトの名無しさん :01/09/30 16:41
Katjusha_DLL_REPLY時には、
getLineMaxで全体を走査する必要がない事に気付いたので、変えた。

そうすると、この形式は、他の?raw=x.xのリクエストに比較して、
(mmapが有効に使える点も含め)負荷的に有意ということになる。
ならば、UserAgentチェックも外して、
他のツールにも積極的に利用してもらうことも考えた方がいいかな?
UserAgentチェックは、かちゅ〜しゃ利用者の(変更しての)
非rawモードでのread.cgi呼出を減らせるかも、と考えたからなんだけど。

796 :デフォルトの名無しさん :01/09/30 18:39
>>747-749,>>763-765
PATH形式での呼出時、解析された以降の文字列に'/'が含まれるとき、
BASE_DEFINEを出力するようにした。

797 :デフォルトの名無しさん :01/10/01 04:17
>>795
UAチェック外すほうに一票。

798 :デフォルトの名無しさん :01/10/01 10:29
rawモードでファイルサイズジャストの時にも
Last-ModifiedとContent-Lengthを出すようにした。
raw=.nnn形式のUAチェックを外した。

というのをやったんだが、cvs鯖落ちてるっぽい。

799 :デフォルトの名無しさん :01/10/01 10:43
今はcvs動いてるみたい

800 :デフォルトの名無しさん :01/10/01 12:15
>>799
ありがと。
>>798をcommitした。

801 :名無しさんの声 :01/10/01 16:14
iモード時の要望です。
批判要望板のスクリプト関連要望統合スレッドにも
書き込んだのですが

iモードでスレ巡回するときは
決まったスレを見ることが多いので
1-10よりも最新-5レス前 とか5レス前-10レス前とか
今見てるとこから数レス前とかの方が便利です。

現在iモードから見る際
ログが流れると1-10を開いてブックマークしてから
編集して見たいレス番号に書き換えて移動って
手順で見ているので何かと不便で博打性も強いです。

手間がかかるかも知れませんが検討をお願いしたいと思います。

802 :デフォルトの名無しさん :01/10/01 19:53
>>801
最新10レスというのがなかったか?

803 :デフォルトの名無しさん :01/10/01 19:54
「大きすぎます」対策として、ファイルサイズが
MAX_FILESIZE - 4255バイトを超えたら
フォームを消すようにできませんか?

804 :デフォルトの名無しさん :01/10/01 19:58
CGI自身にgzip圧縮の機能がなくても、その先のmod_gzip
が圧縮してくれるかもしれないので、BadAccess中での
gzip_flagの判定とかNN4_LM_WORKAROUNDの処理とか
Katjusha_DLL_REPLYの判定とかはしたいのですが、
これらをGZIPのconditionから外に出せませんか?

805 :デフォルトの名無しさん :01/10/01 21:49
>>804
mod_gzipに圧縮をまかせたら、NN4_LM_WORKAROUNDは役にたたないよ。

806 :デフォルトの名無しさん :01/10/02 00:20
bbs.cgiがパス対応になったので、USE_PATHとALWAYS_PATHは
オン固定にしましょう。

807 :デフォルトの名無しさん :01/10/02 00:44
>>805
mod_gzipが勝手に付けちゃうの?
そうだとしても後2つのこともあるし。

808 :デフォルトの名無しさん :01/10/02 05:37
むー、なんか俺には意味が完全には把握できない話が続いている気がする。

>>801の件は、>>802の言うように
「最新10」「前10」「次10」があった気がするのだが。
もう一回確かめて、なければ作る。
上部に欲しいということかな?
もしかしたら、呼出形式によっては表示されないかもしれないので、
・どういう形式のリンクだと不足があるのか(実例を出してもらえるとうれしい)
・その時に、現状のほかにどんなリンク先が欲しいか
を書いてもらえると助かる。

>>803の件は4255というのが「1レスの最大バイト数」なのかもしれないが、
これは>>nnのリンクや改行の数によって左右されないのかな?
よくわからないので、
#define WRITESTOP_FILESIZE 5 として、
MAX_FILESIZE - WRITESTOP_FILESIZE*1024 を超えたら、
スレッドストップ扱いにしてみた。

>>806
USE_PATHとALWAYS_PATHはON固定で良さそうなので、そうした。
RAWOUTも外せない機能ではあるが、
こちらは、「RAWモード専用CGI」の可能性があるので、残しておく。

809 :デフォルトの名無しさん :01/10/02 05:38
>>804の意図が一番わからないのだが、
>CGI自身にgzip圧縮の機能がなくても、その先のmod_gzip
>が圧縮してくれるかもしれないので、
これは、mod_gzipがcgi出力も圧縮するという意味だろうけど、
>BadAccess中でのgzip_flagの判定とか
>NN4_LM_WORKAROUNDの処理とか
>Katjusha_DLL_REPLYの判定とかはしたいのですが、
>これらをGZIPのconditionから外に出せませんか?
「これら」というのが何を指しているのかが不明なので、よく理解できない。
「Accept-Encodingを見てgzip_flagを設定すること」を言っているのか、
「rawmode時等に圧縮非対応のリクエストは受け付けない」を言っているのか、
「NN4リクエスト時にContent-Lengthを出力しない」を言っているのか、
「rawmode以外はKatjushaのリクエストを受け付けない」を言っているのか。

出力の圧縮を完全にmod_gzipに任せることになった場合、
#define GZIP/ZLIBを外す事になり、
そのことにより、いくつかのリクエストがBadAccessで弾けなくなり、
特にrawmode関係のリクエストが受け付けられてしまうのがまずいということかな?
それなら、その通りだとも思うけど。
ただ、出力の圧縮を全てmod_gzipに任せる可能性はあるかな?

というか、既に、
http://piza2.2ch.net/test/check.cgiの出力なんかは圧縮されて返ってくるから、
どちらかというと、
・CHECK_MOD_GZIPで、mod_gzipが導入されていれば、圧縮しないで出力する
・BadAccessで、圧縮を受け付けないrawモードのリクエストは弾く
ぐらいでもいいかもしれない。
負荷的にも、mod_gzipに任せた方がいいかもしれないし。
ただ、NN4時にもContent-Lengthを付けてしまう(おそらく)のが欠点か。

810 :801 :01/10/02 05:50
>802>808
確認しました。付いておりました。
多謝です。お騒がせして申し訳ありません。

811 :デフォルトの名無しさん :01/10/02 06:45
>>809
mod_gzipが入ってるならGZIP/ZLIBとも外したほうが
オブジェクトサイズの節約になるのでは。
とくにZLIBはスタティックリンクされてますし。
で、現状ではGZIP/ZLIBを外してしまうと、たとえば
rawモードの取得をgzip対応クライアント以外に認め
ない機能も消えてしまうと言いたかったわけです。

812 :デフォルトの名無しさん :01/10/02 07:10
了解。

ZLIB/GZIPはOFFにする方向で、
なおかつrawモード時のAccept-Encodingチェックは行うにする、と。
かちゅチェックは、rawモードに含まれるのでそのままでもよさそう。
NN問題はとりあえずあきらめて、
圧縮をmod_gzipに任せ、cgiサイズ(と負荷)が小さくなるようにする。

この方向でよい?

813 :デフォルトの名無しさん :01/10/02 07:12
read.cgiが生成するURLは常にパス仕様になりましたから、
create_link()の旧形式を生成してる部分はバッサリ削除
できます。

814 :811 :01/10/02 07:15
>>812
かちゅチェックは
main()の
#ifdefined(GZIP) && defined(RAWOUT) && defined(Katjusha_DLL_REPLY)

#ifdefined(RAWOUT) && defined(Katjusha_DLL_REPLY)
にしてくださいと言いたかったのでした。
あとはよいと思われ

815 :デフォルトの名無しさん :01/10/02 08:17
>>813
#ifndef ALWAYS_PATHに相当する部分なので消してもよいかと思ったが、
一応#ifdef CREATE_OLD_LINKで囲むだけにした。
>>814
read2ch.hは変えなかったが、
GZIP/ZLIBがなくてもAccept-Encodingをチェックするようにした。

816 :デフォルトの名無しさん :01/10/02 12:57
たまたまrawモードをブラウザで叩いてみたんですけど、
>>[レス番号] にアンカー入ってるんですけど…こういう仕様ですか?

817 :デフォルトの名無しさん :01/10/02 13:05
>>816
bbs.cgiが.datに書き込んでるので仕様です。
read.cgiは仕方ないので指す先を捨ててURLを再生成してます。

818 :デフォルトの名無しさん :01/10/02 13:16
>>817
解かりました。有難う御座います。

819 :林檎おいしいよ。 :01/10/02 16:30
がいしゅつだったらスマソ。。
ニュー速板で、"最新50"の時、下の「掲示板に戻る」をクリックしたら、
http://news.2ch.net/news/index.htmに行っちゃって、
ブックマーク変更してねっていわれちゃったんですけど。。
私はとっくに変更済みなんですけど、
夜勤さんに念のためここで報告するようにいわれたので。。よろしくです。

820 :デフォルトの名無しさん :01/10/02 19:43
どうやらmod_gzipがまだ入っていない板でもindex.htmが
廃止されたみたいなので判定のロジックはばっさり
捨て去ったほうがよさそう

821 : ◆YaKIN/eo @夜勤 ★ :01/10/02 21:00
お世話になってま〜す。
負荷がばかにならないくらいあがっています。
なにやら かちゅーしゃとかが新しくなったとか。。。(詳しく知りません)

で提案なんですが、ご検討していただけないでしょうか?
-------------------------------------------------------------
大きな流れとしては、各ツールの要求に答えていくことなんだけど、、、
うーん 転送量の次は負荷が、

dat を細切れにして、さらに圧縮をかけて転送量を削る方向に
向かっているから、これをやめるのが吉か?

ルールが必要か?
1.dat 読みのときは、一気に全部読む。
2.read.cgi はあらかじめ作ってある xxxxxxxxxxxx.dat.gz を返す。

まずは、プログラム板で聞いてこよう。

822 : ◆DLL/lGHE :01/10/02 21:04
差分はdat経由で読むようにしましょうか?
とりあえず現在開発中のバージョン入れてKatjusha_DLL_REPLY
が使えるようになると負荷が多少は減ると思います。

823 :デフォルトの名無しさん :01/10/02 21:06
夜勤さん、かちゅ"〜"しゃです。。。
それとかちゅ用のwsock32.dll作ってる人に聞くと仕様わかるっすよ。

824 :823 :01/10/02 21:07
( ̄□ ̄;)!! のんびりし過ぎた!!

825 :デフォルトの名無しさん :01/10/02 21:21
プロセス起動数の増加による負荷を下げるなら、
rawモードをさらに拡張して複数dat同時転送とかできませんかね。

826 :デフォルトの名無しさん :01/10/02 21:26
read.cgiをApacheモジュールにしちゃえば軽くなるんだろうけど
mod_gzipの導入でもいろいろ交渉したりしなきゃならなかったみたいだから
大変なのかな......CGIプロセス起動しない分軽くなるのは確実だけど

827 :デフォルトの名無しさん :01/10/02 21:27
みんな速くなってますます巡回しまくっちゃったりして…

828 :デフォルトの名無しさん :01/10/02 21:28
read.cgiが自分でgzipを使うかを動的に選択できるのなら、
raw差分転送である程度以下のサイズのものは圧縮しないようにするとか。

829 :デフォルトの名無しさん :01/10/02 21:32
それはmod_gzipがすでにやってたりして…
そういう意味でもmod_gzip任せにしたほうがいいのかも。

830 :デフォルトの名無しさん :01/10/02 21:33
>>827
一応一度巡回すると5分間巡回できない制限ありますので、
レス取得の速さは特に大きな問題ではないです。

831 :デフォルトの名無しさん :01/10/02 21:37
ん? 今のread.cgiで使ってるのはgzipじゃなくてzlibでわ?
mod_gzipにやらせるのと負荷的にはあまり変わらないと思うけど......
それにmod_gzipにやらせた場合NN4_LM_WORKAROUNDに相当する処理が
可能かどうかも問題だけど

832 :デフォルトの名無しさん :01/10/02 21:37
巡回がとんでもなく無用な負荷をかけてるってことでしょ。

833 :デフォルトの名無しさん :01/10/02 21:39
同じようなことするバイナリはCGI側に持たせなければ
CGIは軽くなるよ。多少は。

834 :831 :01/10/02 21:40
勘違い 無視してちょ 氏ぬわ

835 :デフォルトの名無しさん :01/10/02 21:44
そういえば、UNIX板でやってた頃、これを勧めてた人がいたね。
http://www.fastcgi.com

836 :デフォルトの名無しさん :01/10/02 21:46
>>835
cgiのロードタイムは短縮できるだろうけど
fastcgiにするならグローバル変数バシバシなのは一旦見直さないとまずい?
あと、ロードタイムがどれだけ負担になってるのかってのも分からないと…(^^;

837 :デフォルトの名無しさん :01/10/02 21:51
とりあえず、
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz
が更新されないので、変更されたファイルを
ftp://readcgi.dyndns.org/incoming/ver5/read.5.24.1.tgz
に置いてみた。

838 :デフォルトの名無しさん :01/10/02 22:01
夜勤さん召喚しますか?

839 :デフォルトの名無しさん :01/10/02 22:05
うん、一度これをいれて様子をみてもらったらいいと思う。
(あまり変わらないかもしれないけど)
mod_gzipが導入されている鯖はZLIB/GZIPの#defineを外してもらって。

840 : ◆YaKIN/eo @夜勤 ★ :01/10/02 22:09
過去ログ(もうほ更新されない dat)の読み込みが
とてつもなく沢山リクエストが来ているようです。

kako/xxx/xxxxxxxx.dat は、あらかじめ xxxxxxxx.dat.gz にしておいて
read.cgi が呼ばれたとき、そのまま返すとかにしたいなぁ

841 :デフォルトの名無しさん :01/10/02 22:11
>>840
.dat.gzを用意しておいてmod_gzipでdatを処理対象に加える
だけで解決します。

842 : ◆YaKIN/eo @夜勤 ★ :01/10/02 22:14
今、 salad//anime/kako で実験しています。
.htaccess に dat も gz 読めよって書けばいいのかな?
(こっそり、書式教えてくだせ〜)

843 :デフォルトの名無しさん :01/10/02 22:16
mod_gzip_item_include file \.dat$
です。

844 : ◆YaKIN/eo @夜勤 ★ :01/10/02 22:21
う〜ん、よく考えたら、 xxx.dat.gz だけ置きたいんだなぁ。

anime/kako/xxx/xxxxxxxxxx.dat.gz だけってことです。
dat の本体は、見えないところで管理ということなんです。

ということは、kako を見る場合はツールが直接 .dat.gz を
取り込めばいいのかな?

anime/kako/xxx/xxxxxxxxxx.html
anime/kako/xxx/xxxxxxxxxx.html.gz
anime/kako/xxx/xxxxxxxxxx.dat.gz
の三つを可視にすると、

845 :デフォルトの名無しさん :01/10/02 22:22
サフィックスに関わりなくテキストを圧縮するということなら
mod_gzip_item_include mime "text/.*"
でいいと思うけど......しかしNN4_LM_WORKAROUNDを
.htaccessでどうやって実現できるのかが難儀......

846 :デフォルトの名無しさん :01/10/02 22:24
>>844
確かに非圧縮版のdatを置いておく意味はあまりありませんね。

847 :デフォルトの名無しさん :01/10/02 22:25
>>845
mod_gzipのデフォルト設定でtext/.*は圧縮対象に含まれてる
はずなんですけど.datはなぜか指定してやらないと圧縮対象
にならないみたいなんです。

848 :デフォルトの名無しさん :01/10/02 22:25
hoge.datのリクエストにhoge.dat.gzを返すということなら
mod_gzip_can_negotiate Yes
かな?

849 :デフォルトの名無しさん :01/10/02 22:29
>>848
index.html.gzで負荷が減ったそうなのでそれはすでに
オンになってるはず。

850 : ◆YaKIN/eo @夜勤 ★ :01/10/02 22:29
ツールさんたちは、直接 .dat.gz を読むということで、いかがでしょうか?
というか、そうしたいです。

kako の中の話です。
anime/kako/xxx/xxxxxxxxxx.html
anime/kako/xxx/xxxxxxxxxx.html.gz
anime/kako/xxx/xxxxxxxxxx.dat.gz

の三つを可視にするという仕様です。
ほとんどの場合 kako 下のファイルは、できあがったら
そのままで変更はかからないので、あまり細工は必要ないと思います。

851 :デフォルトの名無しさん :01/10/02 22:31
異議ありません。

852 :デフォルトの名無しさん :01/10/02 22:31
>>847 ん? オレのとこで実験すると mod_gzip_item_include を何も指定しないと
*.txtも圧縮しないで返ってくるし 逆に mime "text/.*" を指定すると
*.datでも圧縮されて返ってくるけど?

853 :デフォルトの名無しさん :01/10/02 22:32
mod_gzipに任せちゃった方がCPU負荷は減るはず。
lawモードはほとんど何もする必要がない(.datを更新分だけ
出力してくれればいい)のだから、別cgiにすることでオーバー
ヘッドを減らせないだろうか。

854 :デフォルトの名無しさん :01/10/02 22:33
>>850
それで良いと思います。2chあってのツールですし、
作者さん達にも納得してもらえると思いますです。

855 : ◆YaKIN/eo @夜勤 ★ :01/10/02 22:35
あっ 今日の話は、過去ログ(dat落ちして、html化されたスレッド)の話ですので、
ライブなスレッドとか、html化待ちしているやつは、また別の話ですよ。

856 :デフォルトの名無しさん :01/10/02 22:36
>>852
bbspinkはsubject.txtは圧縮されるけど.datは圧縮されないから
そうなのかと思った。
単に.txtが圧縮対象になってるだけか。

857 :イラストに騙され(略) :01/10/03 13:11
J-PHONE 使ってないのでさっぱりわかりませんが…

2chの動作報告はここで。−2−
http://teri.2ch.net/test/read.cgi/accuse/1000645308/703

703 :701 :01/10/03 09:51 ID:DNeYtlDo
「J-PHONEでスレッドが表示されない」の件、原因が分かりました。
URLの最後にスラッシュが付いていると解消されます。

× http://***.2ch.net/test/read.cgi/***/1000000/i

http://***.2ch.net/test/read.cgi/***/1000000/i/

ご考慮ください。。。では。

858 :デフォルトの名無しさん :01/10/03 16:25
■掲示板に戻る■のリンク、index.htmlにならないかな
bbstableとかと統一されてないので、分かりづらいです

859 :デフォルトの名無しさん :01/10/03 19:05
bbstableのリンクは /板名/ で、統一されてると思いますが…
newsで index.htm になってる件なら激しくがいしゅつです。

860 :デフォルトの名無しさん :01/10/03 21:35
J-PHONE対策で、末尾に余分な'/'が含まれるpath形式で呼ばれた時、
リンク先の末尾にも'/'を付加してみた(imode時のみ)。
本当は、呼出形式からではなく、UserAgentで判断したいが。

※/accuse/1000645308/i/という形式で呼ばれる時に
リンク先(POST先含む)がおかしくなる点は既に修正済み。

861 :860 :01/10/03 21:44
なんか不要な修正だった気がしてきた。消すかも。
JPHONEがbase hrefに対応していないとかが原因かもしれん。
話の流れをもう少し見守ってみよう。

862 :860 :01/10/03 21:54
というわけで、元に戻した。

863 :イラストに騙され(略) :01/10/03 23:17
read.cgi側の問題じゃなかったようですね。
お騒がせしてごめん、特に860さん。

864 :しよ〜しゃたん :01/10/04 01:26
BASEの位置がBODYタグ内にあったため端末が正しく解釈できなかったという原因らしい。
bbs.cgiですでに対処済みの模様。

865 :デフォルトの名無しさん :01/10/04 02:37
なんじゃそりゃ。。。

866 :デフォルトの名無しさん :01/10/04 07:44
昨日のJ-PHONE問題でいろいろやって思ったこと。
(実は向こうのスレにも少し書きこんだ)

今、imodeだと>>nnの形式のリンクが全て表示されないようになっているのだが、
これは最初に「リンク先がimode対応ではないから」というのが理由のひとつだったはず。
今はリンクを完全に書き直しているので、
imodeでも>>nnでのリンクを有効にしてもいいような気がするのだが、どうだろう?
もちろん、混雑時間帯の表示範囲内リンクはカットして。
また、表示する場合でも、imode時はtarget=_blankは無くしてもいいかな?

もう一点。
現在、index.htmlでは<base href="..">を使っていないのだが、この理由として、
各スレに書きこまれた>>nnのリンクが無効になるというのがあると思う。
(pageview.cgiでもbaseを出力するようになれば同じ)
ということは、>>nnの形式のリンク(「省略されました・・全部読むには」も)が
index.htmlから呼び出された場合でも
read.cgiが正常に動作すれば、bbs.cgiで完全path形式へ移行することも可能になる。
>>nnのリンクとして、
・旧形式
<a href="../test/read.cgi?bbs=tech&key=1000035521&st=1&to=1&nofirst=true" ...>
・現在
<a href="../test/read.cgi/tech/1000035521/1" ...>
・完全path(index.htmlでもbase hrefを使用)
<a href="1000035521/1" ...>
の3種類を想定して考えると、
index.htmlに<base href="http://piza2.2ch.net/test/read.cgi/tech/">が
あった場合、それぞれ、
http://piza2.2ch.net/test/read.cgi/test/read.cgi?bbs=tech&key=1000035521&st=1&to=1&nofirst=true
http://piza2.2ch.net/test/read.cgi/test/read.cgi/tech/1000035521/1
http://piza2.2ch.net/test/read.cgi/tech/1000035521/1
として呼び出されることになる。
3番目の形に対応出来るのは当たり前だが、
この形式に移行出来ればindex.htmlのサイズの他に、
bbs.cgiがdatに書きこむサイズももう少し減らせる。

ということで、上の2形式にも対応しておき、その版が導入されたら
bbs.cgiにbase href出力と>>nnリンクの完全path移行を
提案出来ると思うのだが、どうだろう?
ちなみに、対処は非常に簡単で、get_path_infoに数行追加するだけで済む。

867 :デフォルトの名無しさん :01/10/04 19:01
かなりがいしゅつですが■▲▼がまともに機能しなくなります

868 :デフォルトの名無しさん :01/10/04 21:50
そっか、逆に今#がついてるのが全部無効になるのか。
気付かんかった。読み流しちゃってたらしい。ごめん。

869 :デフォルトの名無しさん :01/10/06 13:50
USER_AGENTかなんか見ることで携帯かどうか判別して
勝手にimode=trueになるようにできんかな?

870 :デフォルトの名無しさん :01/10/06 14:08
>>869
できなくはなさそう。
http://www.nttdocomo.co.jp/mc-user/i/tag/s2.html

871 :デフォルトの名無しさん :01/10/06 14:25
>>870
HTTP_USER_AGENTが "DoCoMo/"で始まってたらi-modeってかんじ?

ついでにEZWebは
http://info.ezweb.ne.jp/factory/tec/spec/4_4.html
"UP.Browser/"かな。

J-Skyは…ちらっと探したがわからんかった。

872 :デフォルトの名無しさん :01/10/06 15:04
Jスカイweb
http://www.j-phone-east.com/p_and_s/sds/jskyweb/jsky_page/web/caution.htm

ドットi(東京電話アステル)
http://www.ttnet.co.jp/tokyodenwa_astel/doti/siyou/jyokyo.htm

873 :デフォルトの名無しさん :01/10/06 16:13
>>869-872
対応してみた。

874 :デフォルトの名無しさん :01/10/06 20:36
saladで過去ログあってもrawモード時のエラーが
「そんな板orスレッドないです」になる

875 :デフォルトの名無しさん :01/10/06 20:45
.datだけではなく、.dat.gzも探すように直さないとね。

876 :名無し :01/10/07 14:06
夜勤さんに聞いたところでは、pageview.cgi は廃止されたそうです。
iモードで Next Page を read.cgi で実装していただけないでしょうか。
どうかよろしくお願いします。

http://news.2ch.net/news/i/

877 :デフォルトの名無しさん :01/10/07 14:08
>>876
それはread.cgiの管轄じゃないような(^^;

878 :名無し :01/10/07 15:14
>>877
pageview.cgi は廃止されてしまったので
read.cgi でやってもらうしかないのです。

879 :デフォルトの名無しさん :01/10/07 15:19
>>878
リンク元がpageview.cgiという名前で飛ばしてるのに
read.cgi側では何もできない。

リンク元が変更できるとしても、pageview.cgiと同じものを
read.cgiとは別に作るほうが合理的。やることまるで違うし。

となると結局read.cgiの話ではない。

880 :デフォルトの名無しさん :01/10/07 16:26
>read.cgiとは別に作るほうが合理的。

rawモード全てにあてはまるね。

881 :名無しさん :01/10/07 17:06
というかimodeでpageviewを使ってるのに勝手に廃止って言うのが
なんか場当たり的でみっともないなあ。1chのことを馬鹿に出来ないような。

882 :デフォルトの名無しさん :01/10/07 21:47
ver5.24 で902以降のレスの 次100 の範囲が 1001 を
越えるのはこれでいいんだっけ?
外出だったらすまん.

883 :デフォルトの名無しさん :01/10/07 22:24
>>880
確かにrawモードも別にしたほうが綺麗だね。
ただ読む対象が同じなのでread.cgiでもまあいいんでないかな。

884 :デフォルトの名無しさん :01/10/08 16:15
このスレッドを差分取得しようとしても、
http://natto.2ch.net/test/read.cgi?bbs=isp&key=997962695&raw=1064.254564
常に全レス返って来てしまいます。
-INCR 254564/512K

885 :デフォルトの名無しさん :01/10/08 16:18
>>884
1000超えまくりスレなんですね。

886 :デフォルトの名無しさん :01/10/08 16:21
1000超えなだけに余計深刻な感じ…
ホットゾヌがいつもログを取得しなおすので気付きました。
どうやら1000超えならどのスレッドでも発生するみたいです。
http://saki.2ch.net/test/read.cgi/sakura/1001730357/l100

887 :デフォルトの名無しさん :01/10/08 16:33
dat_out_raw()の
&& !(raw_lastnum <= lineMax
と、getLineMax()の
if (line > RES_RED)
break;
の合わせ技で-INCRになってると思われ

read.cgi経由ではrawモードでも1000超えのレスの取得は
認めない(+OK 0/512Kを返す)という方針でどうでしょうか。

888 :デフォルトの名無しさん :01/10/08 18:59
1001レスオーバーのdatがあってもそこでファイルが終了したものと見なすようにした。
どうかな。

889 :デフォルトの名無しさん :01/10/08 19:02
そろそろ夜勤さんの降臨きぼーんだけど
ラウンジの圧縮が滞ってたりするとこ見ると
最近いないんだろうか

890 :名無し娘。 ◆vP.bOZFQ :01/10/09 05:14
御無沙汰しております。みなさまお疲れさまです。

>>889
http://teri.2ch.net/test/read.cgi/accuse/996674822/420
とのことで(^^

891 :名無しさん :01/10/11 00:17
ところで、わざわざdatディレクトリ見に行かなくても、
ブラウザで見た時にdatのファイルサイズがわかるように、
一番下のread.cgiのバージョンの横に、
そのスレのdatファイルのサイズ表示しません?
モナー板とかでは、ファイルサイズが重要なので
+10バイトくらい転送量が増えるけど、許容範囲なんじゃないかな?

892 : ◆YaKIN/eo @夜勤 ★ :01/10/11 00:41
きょうは、ひさびさに います。

893 :デフォルトの名無しさん :01/10/11 01:50
時間がありましたら、
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz (自動更新されていた分)と、
ftp://readcgi.dyndns.org/incoming/ver5/read.5.24.2.tgz (それ以後に更新された分)
を、試しにいれてみてもらえますか?

894 : ◆YaKIN/eo @夜勤 ★ :01/10/11 03:36
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz を落として
ftp://readcgi.dyndns.org/incoming/ver5/read.5.24.2.tgz を上書きですか?

それとも、これら二つは別物ですか?

895 :デフォルトの名無しさん :01/10/11 03:55
下の方には、read.cやread2ch.h等が入っているので、
展開されたファイルを上書きしちゃってください。

896 :デフォルトの名無しさん :01/10/11 08:46
ん? 帰ったかな?
重要な注意ですが、今回からmod_gzip未導入の鯖に入れるときは
#define GZIP
#define ZLIB
を忘れないでください。さもないといきなり転送量が跳ね上がると
思われ…

897 :デフォルトの名無しさん :01/10/11 14:35
read.5.24.2.tgzってcvsの内容と違うね。

898 :デフォルトの名無しさん :01/10/11 14:37
>>897
ってcvsのほう最新見てなかった。一致してたよ。スマソ

899 :デフォルトの名無しさん :01/10/11 14:39
つーか
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz
はもう復活しないの?

900 :ヒロユキ@ギコナビ :01/10/11 21:53
こんにちは。ギコナビ作っている人です。
rawモードで取得するときは、「If-Modified-Since」は付けたほうがいいですか?
先日から実験しているのですが、2〜3日くらい前から上記ヘッダを付加
し、未更新のスレを取得しようとすると、5秒くらい後に304が返ってきます。
前は、GET投げるとすぐに304帰ってきたんだけど。。。実況対策の為かな?
また、1レス程度更新されていても、304が帰ってくる場合もありました。
これって、仕様でしょうか?

901 :デフォルトの名無しさん :01/10/11 21:57
>>900
まさに実況対策のためです。
Katjusha_DLL_REPLY機能のついたread.cgiが投入されたら
そっちを使ったほうが更新があってもなくても負荷は
低くなります。

902 :デフォルトの名無しさん :01/10/11 22:50
現状では、If-Modified-Sinceは付けてもらわないと困るくらいです。
+OK 0/512K
だけの行が返るのは、全く無意味な負荷になっています。

Katjusha_DLL_REPLY形式のリクエスト(?raw=.nnnn)であっても、
If-Modified-Sinceがあれば、
サイズをチェックする前にLastModifiedをチェックするので、
同じく304が返ります。
また、If-Modified-Sinceだと実況対策の304の効果も期待できるので、
できれば付加するようお願いします。

ただ、rawモードだと.datをGETするのに比べて
cgiプロセス起動の分だけ同じ304でも負荷が余分にかかり、
鯖の重さの影響をもろに受けます。
それが時間がかかる原因かもしれません。

903 : ◆DLL/lGHE :01/10/11 22:55
>>845をもう一度お願いしてみたんですけど
今は鯖増設の作業のほうが優先みたいですね…

904 : ◆YaKIN/eo @夜勤 ★ :01/10/12 00:19
新しいの入れましょー

905 : ◆DLL/lGHE :01/10/12 00:23
とりあえず最新版固めてみました。
http://user.freedomainspace.com/read.tgz

906 :デフォルトの名無しさん :01/10/12 00:23
お疲れ様です。

907 : ◆DLL/lGHE :01/10/12 00:24
URL間違えた。
http://user.freedomainspace.com/bbs/read.tgz

908 :デフォルトの名無しさん :01/10/12 00:26
今gameとnewsはmod_gzip入ってないんでしたっけ?
>>896参照。

909 : ◆YaKIN/eo @夜勤 ★ :01/10/12 00:29
まずは、choco にいれますー

910 :デフォルトの名無しさん :01/10/12 00:32
どきどき

911 : ◆YaKIN/eo @夜勤 ★ :01/10/12 00:34
#define GZIP
#define ZLIB

choco は、mod_gzip 入ってないから、read2ch.h のこれらは
#define したままでいいんですよね?

912 :デフォルトの名無しさん :01/10/12 00:35
>>911
です

913 :デフォルトの名無しさん :01/10/12 00:37
>>911
はい、そうです。

914 :デフォルトの名無しさん :01/10/12 00:39
お、変わってる
>read.cgi ver5.25 (01/10/12)

915 :デフォルトの名無しさん :01/10/12 00:40
わーい
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/

916 : ◆YaKIN/eo @夜勤 ★ :01/10/12 00:40
入りましたー

http://choco.2ch.net/test/read.cgi/ainotane/1002814747/l50

917 :デフォルトの名無しさん :01/10/12 00:41
マンセー
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.147

918 :デフォルトの名無しさん :01/10/12 00:42
tag YAKIN20011012打ちましたー

919 : ◆DLL/lGHE :01/10/12 00:42
Katjusha_DLL_REPLY使ってみたいな…(ボソ

920 : ◆YaKIN/eo @夜勤 ★ :01/10/12 00:44
>>919
それは、どうすればいいの?

921 : ◆DLL/lGHE :01/10/12 00:46
>>920
いまchoco鯖に入ったread.cgiではすでに使えるのですが、
負荷が上がるんじゃないかと心配してるのです。
転送量は下がります。
今現在はどちらが優先でしょうか?

922 :デフォルトの名無しさん :01/10/12 00:47
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=77
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.76
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.77
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.78
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.2500

923 : ◆YaKIN/eo @夜勤 ★ :01/10/12 00:49
うーん、微妙。。。
今現在は、負荷下げかな(サーバ増設も含めて)

924 : ◆DLL/lGHE :01/10/12 00:50
じゃ、とりあえず見送ることにします。
つーか負荷優先なら>>845やってほしい…

925 :デフォルトの名無しさん :01/10/12 00:58
choco、なんかgzip圧縮が効いてないみたいです。

926 :デフォルトの名無しさん :01/10/12 01:03
telnetで叩いてみた結果
ちょっとやばいかも…

GET /test/read.cgi/dancesite/1002815310/?raw=.0 HTTP/1.0
Host: choco.2ch.net
Accept-Encoding: gzip

HTTP/1.1 200 OK
Date: Thu, 11 Oct 2001 16:01:40 GMT
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSS
L/0.9.3a
Last-Modified: Thu, 11 Oct 2001 16:01:56 GMT
Connection: close
Content-Type: text/plain

+OK 2467/512K
KINTAMA<><>01/10/12 00:48<> ナインティナインの@llnightnippon
.com <br> 1:00〜3:00 <br> <br> ホームページ <br> http://www.allnightnippon.com/
(以下省略、生のまま)

927 :デフォルトの名無しさん :01/10/12 01:05
mod_gzipが入ってるので、read.cgiでは圧縮やってないんですね。
しかしmod_gzip側もまた圧縮してくれてない。

928 :デフォルトの名無しさん :01/10/12 01:06
つーこって >>845 が必要ってかんじですかね?

929 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:06
うっ まずい?
choco は、 GZIP はいってません。
で、どうすれば?

930 :デフォルトの名無しさん :01/10/12 01:08
>>929
>Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSSL/0.9.3a
mod_gzip入っているようにしか見えませんが(^^;

931 :デフォルトの名無しさん :01/10/12 01:08
>>929
↓これ見る限りmod_gzipは入ってるようですので
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSS
L/0.9.3a

>>845をお願いします。
それで圧縮されるようになるはずです。

932 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:10
あれっいつのまに。。。
(勘違いしてたかな?)

mod_gzip_item_include mime "text/.*"
を .htaccess に入れるといいのですね、

933 :デフォルトの名無しさん :01/10/12 01:10
>>932
はい、そうです。よろしくお願いします。

934 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:12
いれましたー。

935 :デフォルトの名無しさん :01/10/12 01:14
うまくいってませんね。

936 :デフォルトの名無しさん :01/10/12 01:14
変化ないですね…
実際にはmod_gzipが入ってないのに表示だけ変わってる?

937 :デフォルトの名無しさん :01/10/12 01:15
read2ch.hの
#define CHECK_MOD_GZIP
をコメントアウトするしかないかな? (^^;

938 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:16
うーん、mod_gzip がちゃんとインストールできていないようです。

natto サーバに、read.cgi ver5.25 いれましたー

939 :デフォルトの名無しさん :01/10/12 01:17
>>938
chocoに関しては>>937の対策をお願いします。

940 :デフォルトの名無しさん :01/10/12 01:17
>>938
nattoはちゃんと圧縮できているようです。

941 :デフォルトの名無しさん :01/10/12 01:19
nattoはちゃんと圧縮されてますね。一安心。

942 : ,-- :01/10/12 01:22
>>929
割り込んですみません。
ホットゾヌユーザですが、chocoでスレ一覧出すときに問題が出てます。

スレッド一覧取得エラー
http://choco.2ch.net/tv/
This is not gzip!

nattoは入れ替え後も問題ありません。

状況はわかりましたので、気長にまってます。よろしくお願いします>夜勤さん

943 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:23
>>939 を choco でやってみました。

mod_gzip の入っているサーバ > choco 版
mod_gzip の入っていないサーバ > natto 版

を入れると良いのかな?

944 :デフォルトの名無しさん :01/10/12 01:25
逆のような

945 :デフォルトの名無しさん :01/10/12 01:25
>>943
逆では?
mod_gzip の入っているサーバ > natto 版
mod_gzip の入っていないサーバ > choco 版

946 :デフォルトの名無しさん :01/10/12 01:26
choco圧縮されるようになりました。

947 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:26
ありゃ 逆でした。

948 :デフォルトの名無しさん :01/10/12 01:27
テレホタイム以外の間だけ、html化待ちのスレッドをread.cgiで
読めるようにするのは駄目ですか?

もし、軽めの鯖(そんなの鯖はないか)だけでも許可してもらえるなら、
#define AUTO_KAKO
#define AUTO_KAKO_MODE 1
をお願いします。


…でも、そうするとツールからは常時に全部のdatが読めてしまうので、
それも禁止するなら、面倒ですけど、
read.cの2194行目から("everywhere"を検索してみつかったところ)の
 if (rawmode)
  mode = 2; /* everywhere */

 if (rawmode)
  mode = 0; /* everywhere */
にしてからお願いします。

949 :デフォルトの名無しさん :01/10/12 01:28
むしろ>>845を全鯖でやってほしいかも。

950 :デフォルトの名無しさん :01/10/12 01:29
>>948
うわ、0とか2ってなんだ(笑)
意味分からん

951 :942 :01/10/12 01:30
choco読めるようになりました。ありがとうございました。

952 :デフォルトの名無しさん :01/10/12 01:31
>>950
0 dat/のみ許可
1 temp/も許可
2 kako/も許可
です。

953 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:31
>>949
なにがどう違うのか、解説して欲しかったりして、
すみませんが。

954 :デフォルトの名無しさん :01/10/12 01:32
>>953
.datの直読みが圧縮できるようになるので、
転送量を増やさずに負荷を下げられます。

955 :デフォルトの名無しさん :01/10/12 01:33
config.txtより
>AUTO_KAKO_MODE
>AUTO_KAKOで過去ログを取得/閲覧できる制限を設定する(0〜2)
> 通常読み出し RAWモード
> temp/ kako/ temp/ kako/
> 0 = × × ○ ○
> 1 = ○ × ○ ○
> 2 = ○ ○ ○ ○
> 凡例) ○は閲覧可能 ×は閲覧禁止

これか。
ていうかマジックナンバーをソースに埋めるのやめようよ(´д`;)
せめて書き換えるなら
mode = 0; /* dat/ only */
のようにコメントも…

956 :949 :01/10/12 01:34
もしかして>>948の間違いだったとか?

957 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:37
>>954
それは mod_gzip が入っているサーバだけですよね?

958 :デフォルトの名無しさん :01/10/12 01:38
>>957
あ、そうです。
mod_gzipが入ってない鯖でやるとInternal Server Errorに
なっちゃいます。
<IfModule "mod_gzip.c">
</IfModule>
で囲めば大丈夫かな?

959 :デフォルトの名無しさん :01/10/12 01:44
mod_gzipの入ってない鯖ではread.cgi経由にすればいいから
最悪でも現状維持です。

960 :デフォルトの名無しさん :01/10/12 01:46
teriが圧縮されなくなってますね。

961 :デフォルトの名無しさん :01/10/12 01:47
うへえ、piza2も!

962 :デフォルトの名無しさん :01/10/12 01:50
>>960-961
ちゃんと圧縮されてるよ。
300バイト以下とか、圧縮してかえってサイズが大きくなりそう
だったり負荷の割にサイズの節約にならなさそうなとき
圧縮しないのはmod_gzipの仕様。

963 :デフォルトの名無しさん :01/10/12 01:51
>>962
あ、そうか。ホットゾヌがgzip決め打ちで駄目になってるだけなのか。

964 : ◆YaKIN/eo @夜勤 ★ :01/10/12 01:58
mod_gzip が導入されていないサーバ
choco , news , game

>>937
>>845 ×

mod_gzip が導入されているサーバ
その他全部

>>937 ×
>>845

となりました。

965 :デフォルトの名無しさん :01/10/12 01:58
ところでそろそろ1000が近いんですけど…

966 :デフォルトの名無しさん :01/10/12 02:01
>>845の設定効いてないみたいですね…
>>843でないと駄目なのかも…

967 : ◆YaKIN/eo @夜勤 ★ :01/10/12 02:04
natto を >>843 にしてみた。
mod_gzip_item_include file \.dat$

968 :デフォルトの名無しさん :01/10/12 02:06
>>967
nattoの.datが圧縮されるようになりました。
mod_gzipの入ってる鯖は>>843でお願いします。

969 : ◆YaKIN/eo @夜勤 ★ :01/10/12 02:12
りょうかいー

970 :デフォルトの名無しさん :01/10/12 02:20
新スレ立ててきます。

971 :デフォルトの名無しさん :01/10/12 02:24
立てました。移動よろー
http://piza2.2ch.net/test/read.cgi/tech/1002820903/l50

>>969
お疲れ様ですー

326KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30