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

read.cgi改良スレッド

423 :名無し娘。 ◆vP.bOZFQ :01/08/30 02:59 ID:HrH04.b6
こんな所にも。

http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999107451&st=46&to=46&nofirst=true

424 :♯6411 :01/08/30 03:06 ID:WaZdXN2I
>>419 もう終わってます

425 :♯6411 :01/08/30 03:22 ID:WaZdXN2I
>>397
>read.cgi なこと。

> Content-Length
本質的には関係ないという結論が出たナリ

> expire
サーバ側でcgiの設定変更ができた時点で
あらためて考え直すとするよ

> PATH_INFO
> subback
> TopPage作成(index2)
板ダイジェスト(index2相当)以外は
落ち着いた

> >>のリンク
path仕様ではカナーリ最適化される
ものと思われ。

> bzip
たぶん後回しになるでしょう…

> deflate
gzipのみ受け付けるNetscape系を考えると、
キャッシュ効率も鑑みて、当面サポート
しないことになるでしょう…

> LastMod(ls,st,to)
板ダイジェストをやっつけたら、
本格的にサポートします。
dat indexも一緒にね♪

> mmap(lock)
現在のmmap実装では、
PRIVATE(CoW)にしてあるので、
致命的な問題にはならないんでは
ないかなと楽観視したい、ところなんだけど、
これだけ大規模なサイトのこと、
どんな問題が起こるか、わかったもんじゃない。

> NAME,MAIL欄の" " >>192
手元の実装では、問題なくなってるように見える

> スレスト時FORM
未実装のようだ(だよね?)

> r2chhtml.h
chunk化は実装済み。
最終発言リロード猿対策も実装済み。

426 :名無し娘。 ◆vP.bOZFQ :01/08/30 03:26 ID:HrH04.b6
>>424
お疲れさまです。

あとはまとめて。。。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999107451&st=178&to=178&nofirst=true
http://yasai.2ch.net/test/read.cgi?bbs=venture&key=998735207&st=560&to=560&nofirst=true

427 :仕様無しさん ◆NwLv.g/w :01/08/30 11:16 ID:tC2y3XA2
スレスト時FORM非表示と、ressplitter_split()の最適化(前スレ754/756)
実装しました。
が、防火壁のせいでCVS等使えないので、差分つけときます。

begin 664 read.diff.gz
M'XL("%2CC3L``W)E860N9&EF9@#=5FUOXD80_DQ^Q<!)P39+8QOGB*%4NEQ(
M#QV<3X9(;;G((F:!5<"V;%,E.>5#E!]Q?_=FUS8OB9-62>FIM1*\.SO,VS//
ML(JB0$A'XY\N1I>%P6P)[Y93J*F@UANZUC`,T%55VZM6JXF6NZFCJ0W#;&AF
MHJ-L/WP/FG9(-/TM"`%`H6W;ENUTK5^MLP%!P6T3/_[TV1AF\6+NT##T0XEZ
MR\7&WHE!O%U_3.7F7G%#?^+[L<,6$O-B>=O2#(.5W-DH!"5F\9P20!V8,X\*
M1;X):>1$P9S%J9X2$4A6P=I8Y"^H38/YR*6)FNM[40Q*%+J9]IAF7\S.XE!]
M)-$V`L0P+K>,<G,YJ4F/8I[2N(O[WNA*XJHK>2<Z7D;7NCO;%J/Z*9O3/KO9
MCGZ"0E3BJ&8(X;JZ6X3(_QVE58+_/%)YW*J9;XFAJ2MNX7.;OB^0JY?-9...
M(@KE_7(#`^=G;`+2@B[<12`%!$K[HT50(F#(T&J!*L/7U(304Z0`*ORLV()R
MLRQG9P44M\``;)_F4Z[?L(DWIA,8_/ZY[0S:=B?Q+\)1KXZT!APH`$KI[EL)
ME(/TVRCB?HN#&8NJO[!H0$.&,7&%W.COOMWU<J-W9X`ADW(67F[$O/^S*F;]
M_X(J5C2,)"EC[4>643K2S+K\PF**)+Y<F751T,=Y_*V"YK6IJ=>(J1\E;<HK
M+@0U+:LX)LCSL]M=Z]U)M_/I([>64:H[0A*TQ!*9).I!O3&;[%42G7C&?Y7Z
ML1\$=-Q2FUR><G6HJ^?K?3#L=_YH.\=GI^<B7/X_\4.0N>H#:%$_AYY4LL
M*I6L!'SWR4]C032U?%*:AQHQ#^MK4HHQ$=*YCY,NRTAN<FS@>!G'OM<`6YRF
MN-VN<T20UD,F#4L,#*X7TG@9>A@WG]%)70\-8M;U=2>_RG76=^_/!G:[+W#!
M>'!$>FYPS;EWS*9\P`W3P*K:.<$+@6Z("5D(AGS-N^.<]\T7M2S$HA]Q<HL&
M3%/0Q,EZSN.<#H21-W0>4>&5RV/F31W71^=<(=]_A./3GTB!C(YU57[&)0C[
M69G91`)LF/-B2X7]?<`L\2\1(2ON?[N?WE_<!W?#$LCR@YY+HG^$$]E6>P*V
MW"N363>)9AZ960\=**]\#H21PH=!KPNGEH5#))D^Z<&KK3]];4'[@CT<`Q;A
M/0`O")*\!<76+2']Y4]12PC9PM'0=^SV2<+$55]:UL=.NR"(7`@^A^@3@>_'
M8W\9$[#U]Q\<GK!S:MD]`C<WSD4D7I?7))WHRS"D7CQ@B]55R#0-@E=9(Z/0
M?[?RR44J2IH/7H0#B5:MFX\'9THQ4]HE-@_2YGN.E<FQJN^0)1*K]JR3MKQ3
MR-++\09?GNO^ORRGT^$A/R@J;-<S'?7/F^(%2(RE[-!5C;-#UW?(CG^]XEL\
2>:[\F\T./Q2+[T!Y=)6Q#P``
`
end

428 :デフォルトの名無しさん :01/08/30 11:21 ID:avybgQxQ
>>427
decodeできないYO(;´д`)

429 :仕様無しさん ◆NwLv.g/w :01/08/30 11:33 ID:zI.sv/Fk
1. textファイルにコピペ
2. 行頭に余分なスペースがあれば除去
3. ファイルを保存(ここではread.diff.uuとしておく)
4. uudecode read.diff.uu
5. gzip -d read.diff.gz
6. patch < read.diff

430 :デフォルトの名無しさん :01/08/30 11:35 ID:avybgQxQ
>>429
行末の空白全部消しても途中から化けたものが出てくる…

431 :428 :01/08/30 11:37 ID:avybgQxQ
>>429
ML1で始まる行が2文字少ないみたい

432 :仕様無しさん ◆NwLv.g/w :01/08/30 11:38 ID:zI.sv/Fk
gzip -dまではうまく行きました?
# これがうまくいってたらファイルは壊れていない可能性が高いです。

433 :428 :01/08/30 11:39 ID:avybgQxQ
>>432
gzip: read.diff.gz: invalid compressed data--crc error

434 :仕様無しさん ◆NwLv.g/w :01/08/30 11:43 ID:zI.sv/Fk
>431 全角にしてその行載せてみますね
ML1¥$=−Q2FUR><G6HJ^?K?3#L=_YH.¥=GI^<B7/X_¥4.0N&GTH#:%$_AYY4LL

#ブラウザとかちゅ〜しゃの違いとかなのかな???

435 :428 :01/08/30 11:46 ID:avybgQxQ
>>434
">"が > になってた! (笑)

436 :428 :01/08/30 11:47 ID:avybgQxQ
>>435
&GTが(;´д`)

437 :428 :01/08/30 11:50 ID:avybgQxQ
>>427
つーこってcommitしました(makeのみ確認、動作は確認してない)

438 :仕様無しさん ◆NwLv.g/w :01/08/30 11:51 ID:zI.sv/Fk
>437 ありがとうございます。
# しかしuuencodeにこんな落とし穴があったとは...

439 :デフォルトの名無しさん :01/08/30 13:39 ID:VaKgQswY
隊長★さんの話のニュアンスは Big-Server以外のところでホスティングできる
ような方向で動いてるということかな? となると mod_* の組み込みなんかの
自由度も高くなる可能性もあるということか......

440 :♯6411 :01/08/30 14:09 ID:B5j.xDlI
スマソ
昨夜分離したモジュール
index.[ch]
は、命名ミスの予感。
晩酌しながらの作業はアプナイアプナイ

誰か、あのモジュールのもっといい
命名してくれないかしら? 思い浮かばん(鬱

441 :仕様無しさん ◆NwLv.g/w :01/08/30 16:48 ID:nL9JLCPA
これってread.cgiのことなのかな...

http://teri.2ch.net/test/read.cgi?bbs=saku&key=996761078&st=408&to=408&nofirst=true

408 名前:復帰マシーン ★ 投稿日:01/08/30 16:18 ID:???
 えーと各削除人氏連絡です
 キャッシュの(2ちゃんねる側)の都合により削除したはず
 のレスやスレッドが見えてしまうという現象がおこることが
 判明しました、依頼人から抗議などありましたらその件を説明
 してあげてください、ひろゆきさんには連絡済です

442 :デフォルトの名無しさん :01/08/30 16:53 ID:.6UDlrR.
>>441 誰かが言っていた"Cache-Control"ヘッダを入れるべきか......

443 :名無し娘。 ◆vP.bOZFQ :01/08/30 16:55 ID:0pm1KlDE
今から現状を追います。。。
>>441
あぼーんでもdatのmtimeは変化するので、304返すってことはないですよね。
とすると、FORCE_304_TIMEかな?

444 :♯6411 :01/08/30 17:50 ID:RSyGf5Ac
path仕様がほぼ完成したことを
関係者各位にお知らせします。
commitしてありますので、ビクビークしながらご賞味ください。
最後にちょっと仕様変更

/test/read.cgi/tech/ 板ダイジェスト(index2.html相当)
/test/read.cgi/tech/- 全スレ一覧(subback.html相当)

今のところ、リンク遷移において、
現仕様と新仕様は互いに干渉しないようになっています。

あと、板ダイジェスト、スレ一覧のhtmlを検証、
打ち直してくださる方、ご協力を。

445 :デフォルトの名無しさん :01/08/30 19:06 ID:4DArGShY
SETTING_R.TXTの読みこみで、ほぼ全てパラメータにできるようにしてみました。
不要なものまでパラメータにしているかもしれません。
read()版は動作確認済み。mmap()版は未確認。
その他、細かいところ2、3の修正。

最新版>>444に変更を加えたものを
ftp://210.170.170.118/incoming/2ch-read-current/read14.2.8.c
ftp://210.170.170.118/incoming/2ch-read-current/read2ch14.2.8.h
におきました。
どなたかmergeをお願いします。

446 :デフォルトの名無しさん :01/08/30 19:33 ID:C3beEwl.
修正もう1つ忘れてた。
splitting_copy()の中の
  || rawmode);
になってるところを、
  || rawmode || is_imode());
にすると、imodeの時にリンクが出なくなります(-DCUTRESLINK時)

447 :名無し娘。 ◆vP.bOZFQ :01/08/30 19:33 ID:QPVBUxP6
実装・検討待ちの案一覧(前スレはほとんど見なくて良くなりました)

PATH_INFO(完成) >>444
USE_SETTING_FILE(完成 merge待ち) >>445
imodeは常にCUTRESLINKする
>>xxx-yyyにnofirstがつかない問題 >>167
ls=1で全スレ表示問題 >>413
1-100,101-200,...のUI >>78 >>93
スレスト時FORM >>11
CUTRESLINK(imode) http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=765&to=765&nofirst=true
CUTRESLINK問題 >>418
Cache-Control >>441-442
FORCE_304_TIMEの動的変動 >>297
dat,kako >>230 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=805&to=809 ツール作者さんに対応お願い
index2作成 >>394 >>396
LastMod(ls,st,to) >>127 >>134
mmap(lock) >>139 >>425
expire >>336 >>425
deflate >>326 >>425
bzip >>271 >>425 (前スレ 819 821-822 846 865 873)
r2chhtml.hいろいろ http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537&ls=20
その他 http://www.gedoh.org/aki/2ch/tiki/ にいろいろ

448 :ヒロユキ@ギコナビ :01/08/30 19:37 ID:AEjMWcrI
ギコナビという2ちゃんねる閲覧ソフトを作成しているものです。
read.cgiがdatを吐く仕様(パラメタなど)は、どこのスレにあるのでしょうか。

449 :名無し娘。 ◆vP.bOZFQ :01/08/30 19:37 ID:QPVBUxP6
>>446
お疲れさまです。
-DCUTRESLINK と連動せずに、imode 時は CUTRESLINK するようにしていただけると
ありがたいです。

450 :名無し娘。 ◆vP.bOZFQ :01/08/30 19:42 ID:QPVBUxP6
>>448
どうも、ありがとうございます。

/* raw=xxx.yyyを有効にする。 xxx=最終レス番号, yyy=そのときのサイズ。
* 一行目はステータス:
* [+OK] の場合は差分のみを送信する。
* [-INCR] (Incorrect)の場合はすべてのデータを送信する。
* [-ERR (テキスト)]の場合はなんかエラーが起きた。
*/
というふうになっています。

http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&raw
で、dat全体を吐きます。

http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&raw=230.45584
だと、レス番号230番目までのdatのサイズが45584だったときに、231番目から
送信し、サイズが異なるときはあぼーんがどこかにあるとみなして、レス番号1
からすべて送信します。

451 :名無し娘。 ◆vP.bOZFQ :01/08/30 19:44 ID:QPVBUxP6
>>449
あれ、今のread.cgiでは、まだ有効になっていないかもしれません。。。

452 :♯6411 :01/08/30 19:49 ID:RSyGf5Ac
>>445 マージしてるんだけど、
なんか手元で一部機能が動かなく
なってしまったので、格闘ちう。

453 :名無し娘。 ◆vP.bOZFQ :01/08/30 20:06 ID:QPVBUxP6
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html
への投稿からコピペ。

BadAccess()ってなんでif文で切っているの?
コンパイルしたときにダイナミックステップ数が多くなるので
case文にしたほうが高速化が図れますよ。
転送数削減には関係なくてスマソ

454 :♯6411 :01/08/30 20:12 ID:RSyGf5Ac
>>445
>>452
えーと。dat_read()中の
getFileSize()を外すと、
ダイジェスト作成の2周目以降が氏ぬので
復活させときました。

ただいまマージ完了

455 :デフォルトの名無しさん :01/08/30 20:14 ID:.6UDlrR.
>>453 NEWBAの方はforループになってるからcase文にできるのかどうか......
っていうか そもそも文字列に対してswitch-caseって使えたっけ?

あえて言えば User-Agentの一番最初に来る文字列だったら
strstr()よりstrncmp()の方が早くできるかな ってぐらいか

456 :445 :01/08/30 20:46 ID:IyBl8mjA
>454
ありがとうございます。&ご迷惑をおかけしました<エンバグ

>449
-DCUTRESLINKしないと通らない部分で、カットしてるので・・・。
でも、read2ch.h内の
#define CUTRESLINK
の下にdefineしてあるLINKTAGCUTを0にするか、
SETTING_R.TXTに
LINKTAGCUT=0
の行があれば、カットしないはずです。

あと、結構繰り返されるループなので、
4文字のmemcmpやmemcpyはlong値にすると速いと思います。それも、
if (*(long *)p == *(long *)"<br>") ではなく、
if (*(long *)p == '>rb<')
が一番速いような。
可読性と移植性を一気に失いますが。

457 :デフォルトの名無しさん :01/08/30 21:10 ID:N/.0WZiw
ドルバッキーさん来てるよ?

458 :♯6411 :01/08/30 21:13 ID:RSyGf5Ac
とりあえず、最新のバージョンが
動作確認できる場所を確保した。
http://www.psychedance.com/test/read.cgi/tech/

459 :デフォルトの名無しさん :01/08/30 21:19 ID:Np0La3X.
>>450
>http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&raw=230.45584
>だと、レス番号230番目までのdatのサイズが45584だったときに、231番目から
>送信し、サイズが異なるときはあぼーんがどこかにあるとみなして、レス番号1
>からすべて送信します。
何処かに「あぼーん」がある場合、レス番号とdatのサイズが不一致であるという
事実(エラーコード?)と、「あぼーん」されたレス番号を返してもらえればクライア
ント側でログを操作できるんじゃないかな?
これならレス番号1から全て送信し直す必要がなくなると思うんだけど、どうかな?

460 :デフォルトの名無しさん :01/08/30 21:20 ID:N/.0WZiw
>459
ログ形式に関してはこちらで話が進んでいます。

bbs.cgi 改良案スレッド
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998921988

461 :デフォルトの名無しさん :01/08/30 21:21 ID:.6UDlrR.
>>458 ネスケ4.72で
----------------------------------------------------------------------
JavaScript Error: http://www.psychedance.com/test/read.cgi/tech/, line 34:

N is not defined.
JavaScript Error: http://www.psychedance.com/test/read.cgi/tech/, line 36:

N is not defined.
   :
JavaScript Error: http://www.psychedance.com/test/read.cgi/tech/, line 52:

N is not defined.

Too many errors. No further JavaScript errors will be displayed for this page.
----------------------------------------------------------------------
って出てきましたけど......

あとTODO読みました munmap()入れてしまったのオレです スマソ......

462 :音楽侍 ◆NtVkSITE :01/08/30 21:22 ID:KsueBNwE
DolBackyさん、来てますよー>index.cgiスレッド
プロセス起動数が半端じゃなくなりそうだっておっしゃってます。

463 :デフォルトの名無しさん :01/08/30 21:23 ID:N/.0WZiw
また勘違いした。
謝罪しる>自分

>459
専用プロトコルがほしいね。

ABORN 99899784 2CH/0.1
12
23
45

464 :デフォルトの名無しさん :01/08/30 21:25 ID:N/.0WZiw
>458
IE6 でも同様。ヘッダ内で宣言していたJavaScriptを消したせいかと。
HEAD が閉じタグだけあるのは何故?

465 :デフォルトの名無しさん :01/08/30 21:26 ID:4UkPDjVY
IEだと、特に問題なく動いている感じ。

466 :デフォルトの名無しさん :01/08/30 21:29 ID:N/.0WZiw
read.cgi は 1- が 1-50 じゃなくて 1 だけになってます。

467 :♯6411 :01/08/30 21:30 ID:RSyGf5Ac
>>464
JavaScriptは、「あ、えら〜出てるなあ」と。
そのうち治るかな?
HEAD漏れは、漏れの掻き漏れ。スマソ

468 :デフォルトの名無しさん :01/08/30 21:31 ID:hlW8zoEo
gzdopenで、dup(1)は要りません。gzio.c内で1を特別扱いしてます。
atexitfunc() から呼ばれるhtml_errorでexit()呼ばれるのはまずいっす。
あっ、どなたか直してくれてますね。

-/* dup()しないとgzclose()でstdoutを閉じてしまうので */
-pStdout = gzdopen(dup(1), "wb9");
+/* 引数1はzlib/gzio.cで特別扱い 仮にstdoutを設定し、closeしない */
+pStdout = gzdopen(1,"wb9");

gzipped_fwriteをこんな風にすると汎用性と混乱度があがっていいかも。

/****************************************************************/
/* receive gzipped data from zlib/gzio.c */
/****************************************************************/
int gzipped_fwrite(char *buf, int n, int m, FILE *fp)
{
  int l = n*m;

  if ( fp != stdout ) return fwrite(buf,n,m,fp);
  if ( outlen+l > outalloc ) {

469 :デフォルトの名無しさん :01/08/30 21:35 ID:hlW8zoEo
atexitfunc()に
/* あちこちに散らばってたのでまとめてみた */
とかあるんですが、gzip_flag!=0のときしかatexitfunc()は設定されてません。

470 :♯6411 :01/08/30 21:36 ID:RSyGf5Ac
>>466 夕方行われた nofirst 対策の
副作用と思われ。

471 :音楽侍 ◆NtVkSITE :01/08/30 21:42 ID:KsueBNwE
index2.cgi開発者各位は、

index2.html など転送量削減案
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999097075


までお越しくださいませ。
DolBackyさんが導入検討中です〜

472 :名無し娘。 ◆vP.bOZFQ :01/08/30 21:47 ID:QPVBUxP6
すんません。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999097075&st=21&to=21&nofirst=true
の通り、read.cgiが最上行に出力する「掲示板に戻る」が、現状では .html に
なっていますが、これを、gzip 対応のブラウザに対しては .htm にするよう、
お願いいたします。
gzip_flag が 1 か 2 のときに、R2CH_HTML_HEADER の引数を変えてやれば
いいのだと思います。

473 :|  - -) :01/08/30 21:57 ID:PugAduiM
>>472
done(多分)

474 :デフォルトの名無しさん :01/08/30 21:57 ID:Np0La3X.
>463
うん、HTTP自体を捨てられれば色々と楽なんだけど・・・・・
ってのは置いといて、>460見てきました、俺が考えてるのより遥かに高度だった。
ただログ形式から弄るとbbs.cgiを大幅に書き直す必要があるんで、時間が掛かりそう。

今すぐ実装しようと思うとread.cgiの対応だけでなんとかしたいんだけど、「あぼーん」
されるとdat上はどうなるんでしょう?
もし「あぼーん」をdat上で判別可能なら、read.cgiが単独で「あぼーん」されたレス番号
を検索してクライアントに送り返す事ができるんですが・・・・・
どっちみちレス番号1から全部クライアントに送信するのなら、CPU不可自体はそれほ
ど変化しないような気がするんですけど、どうでしょう?

475 :♯6411 :01/08/30 21:59 ID:RSyGf5Ac
>>474 read.cgi単体での
あぼーん検出は
ただいま実装検討中す。

476 :|  - -) :01/08/30 22:09 ID:PugAduiM
>>474
あぼーんはread.cgiで検出できるとして、透明あぼーんはどうするの...?

477 :デフォルトの名無しさん :01/08/30 22:14 ID:QRQ7bTkg
>>476
 今は全部のデータを読んで頭から改行の数を数えているから
 透明あぽーんの方がどっちかいうと処理し易いんじゃない

478 :デフォルトの名無しさん :01/08/30 22:17 ID:hlW8zoEo
>>468 マージしてちょ。

479 :デフォルトの名無しさん :01/08/30 22:20 ID:Np0La3X.
>475
了解です、既に検討中だったんですね、ちと恥ずかしい(´д`;)
read.cの1027行にあぼーん検索関数を割り込ませて、あぼーんレス
番号を表示させればいいのかな?

>476
透明あぼーんってクライアント側で実装してるんだと思ってたんだけど
read.cgiと関係あるの?
何か基本的なところで、俺は間違ってるのかも?(´д`;)

ふと気付いたんですが、cgi経由でdatを読むのなら、サイズとレス番号
が不一致でも問題ないような・・・・・

480 :♯6411 :01/08/30 22:21 ID:RSyGf5Ac
>>479 透明あぼーんは、
.datからエントリがごっそり消え失せるものと
認識してます。

481 :名無し娘。 ◆vP.bOZFQ :01/08/30 22:25 ID:QPVBUxP6
>>479-480
ええ、そのはずです>透明

専用ブラウザはdatの差分を採ります。
しかし、すでに専用ブラウザが取得済の部分であぼーんがおこった場合は、
差分だけ採ってもあぼーんがわからずじまいになりますし、透明あぼーん
だともっと悲しいことになるかも。
それを回避するために、サイズとレス番号。

482 :|  - -) :01/08/30 22:25 ID:PugAduiM
>>468
done.

>>469
とりあえずどんな場合でもatexit(atexitfunc());されるようにしてみました。

>>479
多分透明あぼーんはそのデータ1行が丸ごと削除されるものと思われ。

483 :デフォルトの名無しさん :01/08/30 22:29 ID:hlW8zoEo
>>482
さんくす

484 :デフォルトの名無しさん :01/08/30 22:35 ID:hlW8zoEo
>>482
1537行目のとこ、
fflush(stdout); close(1); っているのかしら?
waitpid()は if (gzip_flag) で括るべき。

if (gzip_flag) waitpid(pid, NULL, 0);

485 :デフォルトの名無しさん :01/08/30 22:38 ID:7PExlRw6
後始末無視さんせー。

readSettingFile()の最初を
  ・・・
  char *endp;
  struct stat st;
#ifdefUSE_MMAP
  void *mmptr;
  fstat(fd, &st);
  mmptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
#else
  char mmptr[8192];
  st.st_size = read(fd, mmptr, sizeof(mmptr));
#endif
にして、
最後の #ifdef-#endif は、ばっさりカットしましょ。

それと、
zz_GetEnv()の
  localtime_r(&t_now, &tm_now);
を勝手にlocaltime()にしちゃってました。ごめんなさい(家で動かないんで)。

486 :さくーしゃ@マカー用。 :01/08/30 22:39 ID:i89NKQig
現在,RAWOUT って有効になってますか?

>>450 のURLでためしてみたんですけど,text/html でかえってきてるみたいなんです。。。?

487 :デフォルトの名無しさん :01/08/30 22:44 ID:Np0La3X.
>480-483
かちゅーしゃの透明あぼーんとゴッチャになってました。ご教授感謝です。
エントリごと消え去るんですね、ってことはスレ番号もズレるのか・・・・
read.cgi単独での検出は難しそう(汗

>481
問題を理解できました。
透明あぼーんが挟まると発言を取り漏らすってことですね。

488 :♯6411 :01/08/30 22:48 ID:RSyGf5Ac
>>458 のサンプル、見てくれをいじった。
さくっとやったので、ところどころおかしい
(それどころか根本的におかしい)けど、
いい感じではないかな?

>>486
rawoutって、運用で動いてなかったんじゃなかったっけ。
http://www.psychedance.com/test/read.cgi/tech/
こっちは最新版なので、よかったら検証してもらえます?

489 :|  - -) :01/08/30 22:55 ID:PugAduiM
>>484
gzipが終了するためには入力ストリームを閉じないといけません。
gzip_flagで囲むようにはしました。

>>485
done.

>>450
?raw だとだめです。
?raw=0.0 ならうまくいきます。
(仕様です)

490 :|  - -) :01/08/30 22:57 ID:PugAduiM
事故レス >>489
入力ストリーム → gzipの入力ストリーム
つまりread.cgi側の出力ストリームです

491 :♯6411 :01/08/30 22:57 ID:RSyGf5Ac
>>466
>>470
どうやらエンバグで、
現行形式でも仕様通りに動かないもよう。

492 :デフォルトの名無しさん :01/08/30 23:03 ID:hlW8zoEo
>>490 了解。確かにcloseせないけませんね。

493 :test :01/08/30 23:19 ID:HEIfwNwk
test

494 :♯6411 :01/08/30 23:35 ID:RSyGf5Ac
>>491 修正してみました > |  - -)

495 :|  - -) :01/08/30 23:42 ID:PugAduiM
>>494
ls=1のときはnofirst=true強制ですね。
それでいいと思います。

496 :デフォルトの名無しさん :01/08/30 23:47 ID:N/.0WZiw
to>st な場合の表示はどうするんですか?

こういう場合。
http://www.psychedance.com/test/read.cgi/tech/998921988/20-10

497 :♯6411 :01/08/30 23:48 ID:RSyGf5Ac
>>496 元の仕様でもよろしくなかったような
気がするんですが…救済した方がいいかしら?

498 :デフォルトの名無しさん :01/08/31 00:07 ID:pEodOMrQ
>497
言っておきながらなんですが、
今の仕様が一番サーバに優しそうなのでそのままで良いかも。

色々試すと面白い…
http://www.psychedance.com/test/read.cgi/tech/998921988/0-0
http://www.psychedance.com/test/read.cgi/tech/998921988/0-1
http://www.psychedance.com/test/read.cgi/tech/998921988/-5-1

499 :デフォルトの名無しさん :01/08/31 00:08 ID:pEodOMrQ
日付変わったせいで ID も変わってるけど 496=498。

500 :♯6411 :01/08/31 00:10 ID:WLvR5P8o
>>498 いろいろ試されると、
解析アルゴリズムがバレちゃうね。

とはいってもソース公開されてるし(w

501 :デフォルトの名無しさん :01/08/31 00:15 ID:PS9zdCQg
今の状況じゃ、転送量にやさしければ、なんでもいいでしょ。

502 :♯6411 :01/08/31 00:46 ID:WLvR5P8o
新仕様
>>数字 のレスリンクの、リンクさせ方を変更。
chunk単位で取りにいくようになります。
キャッシュ効率の向上が期待…できるといいな。

503 :名無しさん :01/08/31 01:44 ID:1YfH/xHU
>>489
> >>450
> ?raw だとだめです。
> ?raw=0.0 ならうまくいきます。

試してみたんですがうまくいきませんです…

504 :デフォルトの名無しさん :01/08/31 01:47 ID:MkV83E8o
URLの自動リンクを無効にするというのは既出ですか?

505 :デフォルトの名無しさん :01/08/31 01:54 ID:HfubHdvY
read.cgiが吐き出すデータの先頭2kbがスペースというのは既出ですか?

506 :デフォルトの名無しさん :01/08/31 01:56 ID:6a8y9j3k
>>505
gzip転送の定説です。
つーかIE4が悪いのか IE5以上でも起きるの?

507 :|  - -) :01/08/31 01:58 ID:W1MB8EFM
>>503
えーっと、現在のバージョン(5.10)には入っていません。
http://www.psychedance.com/test/read.cgi/tech/998921988/?raw=0.0
で試してみてください。

508 :♯6411 :01/08/31 01:59 ID:DT2vnGqI
>>504 がいしゅつなんだけど、結論は
どうなったか忘れた。条件に応じて
削る(というよりはリンクしない)ことは、
やろうとおもえばすぐできるけど。

>>505 稼働中のバージョンではやむを得ず
そうなってる。実際のところ、転送量は
10数バイトしか増えてない。
最新バージョンではすでにスペースを吐かなく
なっている。

509 :名無し娘。 ◆vP.bOZFQ :01/08/31 02:00 ID:s8ksSf.2
>>489
ぺこぺこ
>>506
うちのIE5だとだいじょうぶ
>>507
うまくいったです

510 :♯6411 :01/08/31 02:03 ID:DT2vnGqI
>>506 IE5.5でも起きる。
バグなのか正しい仕様なのかつかみ切れていないけど、
Transfer-Encoding: chunked
Content-Encoding: gzip
Content-Length: ナシ
のときに、展開したストリームの頭2048バイトを
きっかり無視する…

511 :♯6411 :01/08/31 02:04 ID:DT2vnGqI
>>509 う、漏れの手元で見たヘッダ欠けは
幻だったのか…鬱だ

512 :デフォルトの名無しさん :01/08/31 02:15 ID:PS9zdCQg
index2.cgiがあったら、掲示板に戻るをindex2.cgiを呼ぶようにする。

html_head()で、

char fname[1024];

sprintf(fname, "../%.256s/index2.cgi", zz_bs);
if ( access(fname,S_IXUSR) == -1 )
 pPrintf(pStdout,
  R2CH_HTML_HEADER_1("%s", "/%s/index2.htm%s"),
  title, zz_bs, gzip_flag ? "" : "l");
else
 pPrintf(pStdout,
  R2CH_HTML_HEADER_1("%s", "/%s/index2.cgi"),
  title, zz_bs);

あと、1758行目 dat_out(); だけど dat_out(0); じゃない?

513 :506 :01/08/31 02:16 ID:6a8y9j3k
>>510
mod_gzipはどうやってるのかのう。
ちょっと調べてみよう。

514 :♯6411 :01/08/31 02:20 ID:DT2vnGqI
>>513 T-E: chunkedを吐かない、のが大きな違いのようだ

515 :VC++まだ箱のなか厨房(w :01/08/31 02:26 ID:OWdgxIS.
ちょこっと書いておきますと

 2ちゃん専用ツール側での削除は「あぼ〜ん」で
 2ちゃんねる上での削除は「あぼーん」です。

この2つを使い分けるといいかもしれません、、です

516 :名無し娘。 ◆vP.bOZFQ :01/08/31 02:29 ID:s8ksSf.2
>>509-511 M$ですから、夢も幻もいっぱいあるでしょう(^^;
>>514 ソース読んだ限りでは、特別なことはそれしかやっていないようで。
>>515 知らなかった。。。

517 :506 :01/08/31 02:31 ID:6a8y9j3k
>>514
mod_gzip.cみました。
そのようです。
失礼しますた。

518 :デフォルトの名無しさん :01/08/31 02:40 ID:PS9zdCQg
>>511
幻じゃないかも。
動的生成gifをgzipで送ってたら、表示できないWIN2000上のIE5とIE5.5が
あった。
最初は表示されていたが、なにかの拍子で駄目になり、IE5→IE5.5で直らず
OSインストールしなおして直ったが、また駄目になったとか聞いた。

519 :デフォルトの名無しさん :01/08/31 02:52 ID:BJK6ay72
ftp://210.170.170.118/incoming/bmem/bmem.c
っていうのでちょっと実験してみたんだけど(IA Solaris8)

bmem@test:~/tmp[479]% time bmem mmap
0.35u 1.78s 0:02.10 101.4%
bmem@test:~/tmp[480]% time bmem mmap.pri
0.37u 1.81s 0:02.15 101.3%
bmem@test:~/tmp[481]% time bmem mmap.pri.wri
0.52u 5.73s 0:06.21 100.6%
bmem@test:~/tmp[482]% time bmem read
0.23u 3.80s 0:03.99 101.0%
bmem@test:~/tmp[483]% time bmem fread
3.20u 4.09s 0:07.26 100.4%

確か.datをmmap()で読む時はMAP_PRIVATEにして BigBufferに書き込み
してたよね? これだと上記の"mmap.pri.wri"のケースに該当するんだけど
......どうしましょ? プラットフォームによっては違う結果になる?

520 :|  - -) :01/08/31 03:00 ID:W1MB8EFM
bash-2.03$ uname -sr
Linux 2.4.9
bash-2.03$ for i in mmap mmap.pri mmap.pri.wri read fread ; do echo -n $i; time
./a.out $i; echo; done
mmap
real 0m1.272s
user 0m0.230s
sys 0m1.020s

mmap.pri
real 0m1.237s
user 0m0.220s
sys 0m1.020s

mmap.pri.wri
real 0m2.454s
user 0m0.250s
sys 0m1.960s

read
real 0m6.346s
user 0m0.340s
sys 0m6.000s

fread
real 0m10.448s
user 0m1.950s
sys 0m8.490s

521 :|  - -) :01/08/31 03:03 ID:W1MB8EFM
...というわけでたぶんプラットフォーム依存かと。

522 :♯6411 :01/08/31 03:05 ID:DT2vnGqI
>>519 検証せずにしゃべってるので突っ込み大歓迎♪

MAP_PRIVATEのときは、commitも
含むんだとおもう。なので mmap.pri の結果は順当かと。
で、そこに書き殴ったときは、カーネル内部で
・ページフォルト
・ページのコピー
がページ境界をまたぐたびに発生するんで、
オーバーヘッドはまぬがれない。
以上はイパーン論。

今回のケースでは、以下の前提があると思われ。
・ターゲットファイルはページキャッシュにある
 ことが多いと期待される。
・実際書き殴ってるのは、ケツの1ページだけ。
なので、read()でバッファに読み込むより
いくぶんか効率的なのでは…と思ったら、
dat_read()以外の部分でBigBuffer書き殴って
たりしないっけ? あれ? あれれ? あれれのれ?

書かないという前提があれば、readonly, sharedで
いいんだよねー。

レポートさんくすです。
ちなみにターゲットはLinux.

333KB
新着レスの表示

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

0ch BBS 2004-10-30