■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50
read.cgi改良スレッド
- 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.
- 523 :デフォルトの名無しさん :01/08/31 03:07 ID:PS9zdCQg
- 無意味だけど一応 FreeBSD4.2
time ./bmem mmap
0.148u 2.207s 0:02.35 99.5% 10+191k 0+0io 0pf+0w
time ./bmem mmap.pri
0.257u 1.979s 0:02.23 99.5% 10+191k 0+0io 0pf+0w
time ./bmem mmap.pri.wri
0.351u 3.841s 0:04.29 97.6% 10+192k 0+0io 0pf+0w
time ./bmem read
0.357u 2.525s 0:02.90 98.9% 12+210k 0+0io 0pf+0w
time ./bmem fread
1.531u 4.327s 0:05.91 98.9% 10+215k 0+0io 0pf+0w
- 524 :♯6411 :01/08/31 03:07 ID:DT2vnGqI
- >>520 早速レポートいただけるとはさすが。
参考になるす。tnx.
- 525 :デフォルトの名無しさん :01/08/31 03:11 ID:PS9zdCQg
- そういえば、ターゲットのカーネルのバージョンはいくつかな。
サーバー導入時期で違ってたりして。
- 526 :デフォルトの名無しさん :01/08/31 03:17 ID:0V6W10r6
- >>525
ttp://www.maido3.com/server/usagi/news.html
には Linux2.2.19 Slackware って書かれてますね
- 527 :506 :01/08/31 03:21 ID:6a8y9j3k
- >>518 う gifを生成しとるので夢の話という事ですよね。
content encoding gzip RFCひっくり返して見たが
やはりMSのヒトリヨガリの仕様のようだちなみにMSDNにも
ロクな事は乗ってなかった
糞MSのトップページみたらMSIE6が出てて鬱になった。
- 528 :518 :01/08/31 03:28 ID:PS9zdCQg
- いえ、無圧縮GIFをgzip通して送出してたら、表示できないIE5があったんです。
- 529 :デフォルトの名無しさん :01/08/31 03:31 ID:pEodOMrQ
- ところで、2048 バイト欠ける理由は分かったの?
- 530 :506 :01/08/31 03:36 ID:6a8y9j3k
-
>>529
2048欠けるのはMSIEの単純なバグ。
- 531 :デフォルトの名無しさん :01/08/31 03:39 ID:pEodOMrQ
- もしそうなら IE6 でも直ってないのだけれど。やる気ないな。
どこかにこの件に関するバグレポートないのか。
- 532 :デフォルトの名無しさん :01/08/31 03:42 ID:PS9zdCQg
- >>518 のような例があるので、単純なバグじゃないのかも。
- 533 :506 :01/08/31 03:54 ID:6a8y9j3k
- 他にも Windows2000 とかでも
accept encoding "gzip" が 「無い」 MSIEがあるようです。
OSごと入れなおすと直ったらしい 藁
>>531 MSあさりました RFC詠んだ mod_gzip.c読んだ 吐き気がする程に。結論は無かった
けどgzipで2048の空白なんざ数バイトになるので、あまり問題に
しないほうがいい。
なので 消防の自分は寝るよ。
- 534 :デフォルトの名無しさん :01/08/31 03:58 ID:PS9zdCQg
- >>533
OS入れなおさないと直らないってところが(藁
IE再インストやverUPでなぜか直んないんだよね〜。
- 535 :デフォルトの名無しさん :01/08/31 03:59 ID:pEodOMrQ
- >533
お疲れ様です…
自分も google しまくったけど手かがりなし。
原因が解明できないのは精神衛生的に良くないが、時間の無駄みたいだ。
- 536 :デフォルトの名無しさん :01/08/31 04:03 ID:PS9zdCQg
- 一応
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999151333&st=822&to=825&nofirst=true
- 537 :音楽侍 ◆NtVkSITE :01/08/31 04:12 ID:Ha76ETsk
- いま、どこかにmake一発で動くread.cgiって保存されていますでしょうか?
公開版は一ヶ所別に置くとか、gzipになってるとか。。。
- 538 :名無し娘。 ◆vP.bOZFQ :01/08/31 04:16 ID:s8ksSf.2
- >>537
http://www.gedoh.org/aki/2ch/current/bbs/
これじゃだめ?
- 539 :音楽侍 ◆NtVkSITE :01/08/31 04:24 ID:Ha76ETsk
- >>538
やってみます〜
- 540 :デフォルトの名無しさん :01/08/31 04:29 ID:PS9zdCQg
- Makefileに追加して、一括ファイル作りましょうよ。
http://www.gedoh.org/aki/2ch/current/bbs/
でcvs更新後に実行してくれるとうれしいな。
最低限必要なのは、下記
dist:
tar cf - *.[ch] Makefile zlib/*.[ch] zlib/configure zlib/Makefile.in | gzip -9 > read.tgz
- 541 :音楽侍 ◆NtVkSITE :01/08/31 04:40 ID:Ha76ETsk
- >>538
出来ました〜ありがとです。
>>540
ビルドごとにアーカイブして隔離していただいた方が安全です〜
- 542 :デフォルトの名無しさん :01/08/31 04:44 ID:Rl8iN43I
- >>541
そのへんは cvs の tag に活躍させてもいいのでは?
- 543 :音楽侍 ◆NtVkSITE :01/08/31 04:59 ID:Ha76ETsk
- >>542
私はコーディングには参加しない(動作確認とチェックだけ)ですので、CVSだと状況を追い切れません。
スレを追っての現状認識では、どれがカレントで、どれが評価版で、どれが最新か、という判断するのに時間がかかりすぎますです・・・
- 544 :デフォルトの名無しさん :01/08/31 05:09 ID:Rl8iN43I
- >>543
だからこそ cvs の tag や branch を利用してみてはってことなのですが…。
- 545 :♯6411 :01/08/31 05:11 ID:DT2vnGqI
- >>543
ブランチ切ってないので、
最新版 == current と捉えてくだちい。
機能評価などは、ヘッダなどでcondition outしてから
cvsのcommit logに書く、というのが一般的。
なので、何が行われたかは、cvs logで見るべし。
(どこかにcvswebのURL書いてあるでしょ?)
- 546 :デフォルトの名無しさん :01/08/31 05:11 ID:6a8y9j3k
- #6411はもう寝たのかな。
- 547 :デフォルトの名無しさん :01/08/31 05:45 ID:PS9zdCQg
- 掲示板に戻るはindex2.cgiがあったら呼ぶようにしました。
MakefileにSRCSとdistターゲットを加えました。
- 548 :aki :01/08/31 07:14 ID:N9m3H/y.
- >>547
gedoh.org のミラーで cvs up したタイミングで
make dist するように仕掛けてみました。
でもって、tag とか branch は自由にきっちゃってください。
夜勤さんや$さんが取り込んだ版にtag切っておくといいかも。
- 549 :aki :01/08/31 07:17 ID:N9m3H/y.
- でもって、レポジトリ内容はここでみれます。
http://2ch.uryusoft.net
- 550 :aborn ◆OonrVZq6 :01/08/31 07:32 ID:6m29/Im2
- 遅いかもしれないが…
>>533-535
インターネットオプションの詳細設定で「(プロキシ接続で)HTTP 1.1を使用する」にチェックを入れないと、
Accept-Encoding に gzip は出てきません。それのことでは。
- 551 :デフォルトの名無しさん :01/08/31 07:38 ID:PS9zdCQg
- distのやり方間違ってて、毎回read.tgz作ってました。
直しました。
- 552 :デフォルトの名無しさん :01/08/31 07:57 ID:PS9zdCQg
- あれ?まだ、毎回作ってる。
どおして〜?
- 553 :デフォルトの名無しさん :01/08/31 16:47 ID:vhMKUI7c
- ハックですか?
>トップ見ろよ
>http://www.2ch.net/
- 554 :デフォルトの名無しさん :01/08/31 17:02 ID:TsVa1PVU
- ネタでしょう。
本気で売るなら、ネットオークションなんかには出品しませんよ。
荒らされるの必至。つか、もう荒らされてるし(w
- 555 :名無し娘。 ◆vP.bOZFQ :01/08/31 18:10 ID:0C9lj0zQ
- こんなはなしも。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=981726544&st=856
- 556 :デフォルトの名無しさん :01/08/31 19:20 ID:BJK6ay72
- 結局オークションはひろゆきのジサクジエンデシタ
でもこういうことされたから bzip2実装してやろうと思ってきた(w
- 557 :デフォルトの名無しさん :01/08/31 21:31 ID:gWobhVmY
- なんかcvs重いな
- 558 :♯6411 :01/08/31 21:36 ID:WLvR5P8o
- アタック受けて氏んだかと思った(w
- 559 :デフォルトの名無しさん :01/08/31 22:21 ID:xu.zymnM
- どこまでがネタなのかわからんな…。
そんな状況で発言するのもなんか馬鹿馬鹿しいのだが…
ページ最下部に、リロード用のリンクつくるってのはどうだろう。
st=(最新の番号-10)とかそんな感じので。
ls=100とかのままリロードしてる人間が結構いると思うので、
これって転送量結構減らせるような気がするんだけど。
って、これ、スレ違いかな?
ガイシュツだったらスマソ。
- 560 :| - -) :01/08/31 22:26 ID:W1MB8EFM
- >>559
-DRELOADLINKですな。実装済みです。
- 561 :デフォルトの名無しさん :01/08/31 22:56 ID:KHrRCh/w
- http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848
Internal Server Error
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848&ls=10
だと大丈夫。
index関係のスレでがいしゅつかな?
http://www.psychedance.com/test/read.cgi/tech/,
で、[全レス][最新50]のリンクが全部一緒(しかもbbs=hp)
- 562 :デフォルトの名無しさん :01/08/31 22:58 ID:xu.zymnM
- ごめん。
- 563 :| - -) :01/08/31 23:05 ID:W1MB8EFM
- >>561
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848&raw=0.0
もうまくいきません(500エラー)
- 564 :♯6411 :01/08/31 23:09 ID:WLvR5P8o
- >>561 ときどきPremature end of scriptが
出るっぽいんだけど、漏れが連打した限りでは
なかなか出ない。
スレダイジェストのアンカーが不完全なのは、
まだ実装してないからです…
- 565 :デフォルトの名無しさん :01/08/31 23:23 ID:PuIIKuzw
- とりあえず、
BigBufferをread-onlyにする変更をしてみた。
(>>560の分に対して)
URLリンク等もressplitter_splitに入れ、
BigLineが\nで終了(要はつながったまま)する形式になる。
全体をスキャンする回数はかなり減るはず。
またエンバグが怖いので、どなたかテスト&mergeをお願い。
ftp://210.170.170.118/incoming/2ch-read-current/read14.2.9.c
- 566 :デフォルトの名無しさん :01/08/31 23:26 ID:PuIIKuzw
- あ、全て-DCUTRESLINK時のみ有効です。
mmap()をREADONLYにはしていません。
- 567 :565 :01/08/31 23:26 ID:PuIIKuzw
- 名前とメールを間違えた・・
- 568 :デフォルトの名無しさん :01/08/31 23:28 ID:MkV83E8o
- そういえばいつの間にかかちゅ〜しゃ規制が外れてるらしいですが、
gzip対応なわけでもないのに規制を外して大丈夫なんでしょうか?
- 569 :♯6411 :01/08/31 23:29 ID:WLvR5P8o
- >>563 これだと確実に出ますねえ。
ちょっと追っかけてみるっす。
- 570 :デフォルトの名無しさん :01/08/31 23:34 ID:naodixwc
- >>568
恥ずかしながら、オークションの実況をROMってしまった身から言うと、
ハマりまくってるときのリロードは1−5スレずつダウンロードすることになるね。
かちゅーしゃだとあまり関係ないと思うな。
圧縮するにこしたことはないけど。
- 571 :♯6411 :01/08/31 23:34 ID:WLvR5P8o
- >>569 Content-Encoding: gzipのとき氏ぬ。
落ちちゃってるわけではなく、バッファを
フラッシュしきれてない??
gzipがない状態では、正常に処理されてる模様。
- 572 :♯6411 :01/08/31 23:39 ID:WLvR5P8o
- >>571 ** デバッグ協力お願い **
サイケダンスドットコムの、
/tech/dat/998997848.datを
持ってってみてください。
たぶん、動かない予感。
bash$ (export HTTP_ACCEPT_ENCODING=gzip;
export PATH_INFO='/tech/998997848/';
export QUERY_STRING='raw=0.0';
export HTTP_USER_AGENT=console;
./read.cgi )>file
さいしょは、Linux(開発に使ってる)と
FreeBSD-2.2.x(公開に使ってる)の差かとオモタよ…
- 573 :デフォルトの名無しさん :01/08/31 23:42 ID:WK591e.c
- TODOより
>現在の実装では、/board/subject.txt のmtimeを返しているが、subject.txt
>はsage進行の時は更新されないと思われるので、上位n個スレでsage進行が行
>われているとき、正しいものが取れなくなる可能性はある。
新スクリプト(要するに今使っているbbs.cgi)では、
sageレスも必ずレス数にカウントされるので、
並べ替えは起きないものの、subject.txtの更新は行われていると思われます。
- 574 :♯6411 :01/08/31 23:44 ID:WLvR5P8o
- >>573 tnx, 信じてみるよ。
ちょっと前(?)、subback.htmlとかのレス数が
sageで増えてなかったような気がして、
subject.txtも同じなのかな? と邪推
してたのであります…
- 575 :| - -) :01/08/31 23:49 ID:W1MB8EFM
- dat_readのところの、mmapした後の盲目的strlenで問題が発生している。
本来、このコードはdatが破損してデータの一部が\0で埋められたときにそれを
できるだけ修復するためにあるコードかと思われ。
memchr(BigBuffer, '\0', zz_fileSize);を使えば問題は起きなくなるでしょう。
(その後のwhile()ループも同様に修正)
- 576 :デフォルトの名無しさん :01/09/01 00:06 ID:CHjn5Q7E
- >>575
strlenは、read版だと末尾に'\0'を入れてあり、正常に動いてました。
で、>>565のコードだと、strlen使わなくなってます。
- 577 :565,576 :01/09/01 00:08 ID:CHjn5Q7E
- getLineMax()の内部も変更済み。
でも、要-DCUTRESLINK。
※-DCUTRESLINKでもLINKTAGCUTが0なら、リンクのカットはしません
- 578 :デフォルトの名無しさん :01/09/01 00:25 ID:Z2Y7gl3o
- ってゆーか、read()版でも、いつの間にか消えてた。
dat_read()
・・・
/* XXX ところどころに 0 が現れるの? */
{
char *end = BigBuffer + zz_fileSize;
char *p = BigBuffer;
while ((p = memchr(p, '\0', end - p)) != NULL) {
*p = '*';
}
}
ブロックが汚いけど、こうすれば、OKかな
- 579 :名無し娘。 ◆vP.bOZFQ :01/09/01 00:32 ID:EhmPvxQ6
- -DCUTRESLINK だとむしろ転送量が増えるかもしれない問題について、
妥協的な提案ですが、その窓内で表示されている部分だけは CUTRESKINK して、
表示されていない部分については RESLINK をはるというのはどうでしょう。
&st=50&to=100 なら、 >>58 ははらないけど >>14 ははる、というふうに。
それとも、PATH_INFO 使い出すと同時に -DCUTRESLINK はやめる方向でしょうか。
- 580 :デフォルトの名無しさん :01/09/01 00:43 ID:3xMt6oxQ
- dat_read()内で、
if (zz_fileSize > MAX_FILESIZE)
html_error(ERROR_TOO_HUGE);
の次に、
if (zz_fileSize < 10)
html_error(ERROR_NOT_FOUND);
ぐらい、入れておいたほうがいいかもしれない。
(エラー種別は別にした方がいいかも)
実際、過去にサイズ0のファイルがあったことがある。
各フィールドの区切りや投稿日があるので
正常なdatが10バイトを下回ることは無いはず。
- 581 :♯6411 :01/09/01 00:43 ID:xtb9tuCk
- ちょっと雑用が入ってしまい、
マージ作業とかできぬ、ゴメソ
今から帰らなきゃ…
- 582 :デフォルトの名無しさん :01/09/01 02:06 ID:lOi0M7Jo
- >-DCUTRESLINK だとむしろ転送量が増えるかもしれない問題について、
読みなおしされる回数と、全体の約2割の削減(非圧縮UAのみ)で、
どちらが効果があるのか、調べないと実際にはわかりません。
で、1から「関連スレは>>2-5のどこか」とリンクされる場合は
明らかに逆効果なので、
レス1の場合はリンクするよう、とりあえず変更しました。
(>>578と>>580も加えた)
ftp://210.170.170.118/incoming/2ch-read-current/read14.2.9.c.1
書いてあるレスとリンク先のレス番号の差をみたり、
さらに、st=やls=を見て判断するのは、
単純にカットするのと比べて、閉じタグの時も判断しなければならず、
変更が大きく、
やってはみますが、それなりに重い処理になりそうです。
あと、しつこいようですけど、-DCUTRESLINKだけでカットされるわけではなく、
read2ch.h内で #define LINKTAGCUT 0
にすれば、カット機能は働きません。
>>581
お疲れ様です。頼りきっていてすみません。
- 583 :♯6411 :01/09/01 02:39 ID:LOycKPho
- >>582 いれときました。
500 Internal Server Error問題は
解決しちゃったかな?
- 584 :デフォルトの名無しさん :01/09/01 02:39 ID:dsS601S.
- rawwrite_href()をちょっと見た感じ、
st=やls=によってリンクする/しないを区別する場合には
この中でやった方がよさそうですね。
>>0や>>9999(lineMaxより大きい数字)を判断したりも、
ここで行ったほうが効率が良さそうです。
ただ、BigBufferを書き換えなくすると、
'\0'が含まれないので(逆に最後が'\n'であることが保証されている)、
n = strcspn(*sp, ">");
if (n == 0)
return 0;
は、
n = strcspn(*sp, ">\n");
if (*(*sp + n) == '\n')
return 0;
という感じになおし、
s = strstr(s, "</a>");
if (!s)
return 0;
は、
s = strcspn(s, "<\n");
if (*s == '\n' || strncmp(s, "</a>", 4) != 0)
return 0;
等の修正が要りそうです。
(他にもあるかも)
- 585 :デフォルトの名無しさん :01/09/01 02:52 ID:vzOvppvM
- >>561は大丈夫っぽいけど、
>>563
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848&raw=0.0
は直ってないっぽいです。
333KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30