■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50
read.cgi改良スレッド
- 613 :605 :01/09/01 20:27 ID:D.BYJFUs
- >>609
2ちゃんなら最大8kぐらいだから、とりあえず10kにしときました。
gzipped_fwriteは、zlibの方に移しました。
- 614 :609 :01/09/01 20:43 ID:Oz0a82Qk
- >>613 とりあえずそれが妥当なところですね
vsnprintf()って確か戻り値が「バッファ長が十分あったと仮定した場合の
結果文字列長」だと思ったので それチェックして10kより長かったら
malloc()でもっとデカいバッファ作って呼び直す ってのもいいのかも......
でも vsnprintf()の実装がbrokenだと戻り値が当てにならないこともあるのかな?
- 615 :♯6411 :01/09/01 20:50 ID:73Q/QYVY
- 現在の最新を、サイケドットコムに
反映しときました。
それにしても、Air H"さいこー。
- 616 :605 :01/09/01 20:58 ID:D.BYJFUs
- >>614
たしかに、
if the return value is greater than or equal
とかあります。
ただね、「zlibってvsnprintf()使ってんのにどうして落ちる」と悩んだんですわ。
良く見るとconfigure使うくせに STDC とか HAS_vsnprintfとかを自分で定義して
やらんといけなかった様ですな。
configureがなければ、最初っから手で調整したのにィ〜。
- 617 :609 :01/09/01 21:18 ID:Oz0a82Qk
- >>616 うひゃ〜 このconfigureホントに手抜きもいいとこだな
しかし そうなると......世の中のgzprintf()使ったプログラムには
buffer overflowの脆弱性が潜んでる可能性がかなり高い......
- 618 :605 :01/09/01 21:57 ID:D.BYJFUs
- >>614 この方式も組み込みました。
10kのままにしたので、おそらくread.cgiでは使わないでしょう。
>>617 FreeBSD標準のlibzだとsnprintf()が使われるように見える。
vsnprintf()の方を使って欲しいなあ。
- 619 :♯6411 :01/09/01 22:03 ID:73Q/QYVY
- とりあえず、最新のものを追っかけてます。
- 620 :デフォルトの名無しさん :01/09/02 00:06 ID:6jadN1QI
- dat_out_raw()で、
/* 全部を送信するように変更 */
raw_lastnum = 0;
となっているのは、else以下に入れるのが正しいのでは?
&raw=5.123等の適当な数字を入れると、
-INCRと共に全体が返ってくる
- 621 :| - -) :01/09/02 00:12 ID:U9FxmX3M
- >>620
いや、それが正しい動作なのですが...
(正しいレス番号とそのときまでのファイルサイズを指定したときのみ差分が返ってくる)
- 622 :デフォルトの名無しさん :01/09/02 00:20 ID:5PMhQoM6
- あ、+OKが差分で、-INCRはあぼーん等なんですね。
raw=0.0で返ってくる+OKと内容が同じだったので、
全体を返すときは+OKだと勘違いしてました。
- 623 :デフォルトの名無しさん :01/09/02 00:48 ID:k3O562RI
- 変更点。
>>nnと>>nn-nnについて
・表示範囲外の時にはリンクを貼る
・正しいレス番号でなかったらリンクは貼らない
・リンクを貼る時、USE_PATHだったら、PATH形式に(CHUNKは未使用)
・テレホタイムは、表示範囲に含まれている場合のみリンクしない
・強引に4バイト比較にした(警告が出る)
urlcopy()とressplitter_split()を取り去り、
変わりにこれを入れてください。
ftp://210.170.170.118/incoming/buggy/read.part.1.c
また、お暇な時にお願いします。
手元の環境の都合で、相変わらず GZIP,ZLIB,USE_MMAP,PREVENTRELOAD
での動作確認はしていませんが、
今回は他に影響する部分は無いと思います。
- 624 :デフォルトの名無しさん :01/09/02 02:14 ID:QoqrwTN6
- テスト用URLs
http://www.psychedance.com/test/read.cgi/tech/991795568
http://www.psychedance.com/test/read.cgi/tech/991795568/st=50
間違いではあるんだけど、この辺の動作がもうひと工夫欲しいかも。
http://www.psychedance.com/test/read.cgi/tech/
http://www.psychedance.com/test/read.cgi/tech/991795568/
http://www.psychedance.com/test/read.cgi/tech/991795568/?st=50
http://www.psychedance.com/test/read.cgi/tech/998997848/?st=50
http://www.psychedance.com/test/read.cgi/tech/998915621/?to=50
http://www.psychedance.com/test/read.cgi/tech/990334284/10-20
http://www.psychedance.com/test/read.cgi/tech/991795568/?ls=50
http://www.psychedance.com/test/read.cgi/tech/998997848/?st=50
http://www.psychedance.com/test/read.cgi/tech/998915621/?to=50
http://www.psychedance.com/test/read.cgi/tech/990334284/10-20
http://www.psychedance.com/test/read.cgi/tech/991795568/?raw=0.0
http://www.psychedance.com/test/read.cgi/tech/999073816/?i=t
http://www.psychedance.com/test/read.cgi/tech/977112364/?n=t
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998878393
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998878393&st=20
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998808627&st=50
http://www.psychedance.com/test/read.cgi?bbs=tech&key=994424597&to=50
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998878393&imode=true
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998808627&nofirst=true
http://www.psychedance.com/test/read.cgi?bbs=tech&key=994424597&st=50to=100
http://www.psychedance.com/test/read.cgi?bbs=tech&key=994424597&raw=0.0
- 625 :名無し :01/09/02 02:23 ID:Lim.QX.U
- 夜勤さんが批判要望に出現してます。
インストール頼むなら今ですよ。
- 626 :仕様無しさん ◆NwLv.g/w :01/09/02 02:33 ID:gUvmJJ.Q
- http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999345252&st=764&to=764
764 名前:夜勤 ◆D69Zsbfg @夜勤 ★ 投稿日:01/09/02 02:31 ID:???
ちと 話の流れと違うけど、すまそ
今 www2.bbspink のサーバに mod_gzip が入っています。
ちゃんと動いているようなので(効果もかなりあるし)、
来週は全サーバに入れる予定ですー。
- 627 :名無し :01/09/02 02:33 ID:Lim.QX.U
- 764 名前:夜勤 ◆D69Zsbfg @夜勤 ★ :01/09/02 02:31 ID:???
ちと 話の流れと違うけど、すまそ
今 www2.bbspink のサーバに mod_gzip が入っています。
ちゃんと動いているようなので(効果もかなりあるし)、
来週は全サーバに入れる予定ですー。
過去ログの圧縮もやる予定です。
- 628 :デフォルトの名無しさん :01/09/02 02:38 ID:nSC2NXko
- ホントやねぇ zlib関連のコーディングは結局お蔵入りになっちゃうけど
まぁ めでたしめでたしということか
% telnet www2.bbspink.com 80
GET / HTTP/1.0
Host: www2.bbspink.com
Connection: close
HTTP/1.1 200 OK
Date: Sat, 01 Sep 2001 17:35:09 GMT
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
Connection: close
Content-Type: text/html
- 629 :デフォルトの名無しさん :01/09/02 02:40 ID:TU.A0Olc
- 790 名前:夜勤 ◆D69Zsbfg @夜勤 ★ 投稿日:01/09/02 02:38 ID:???
>>779
1/3 になると思う、ほぼ達成です。
unix板、プログラム板、web 関係の板の皆様方には
本当に感謝しています。
ありがとう。
- 630 :♯6411 :01/09/02 02:41 ID:GBYgH3SU
- >>624 勘弁してくだちい(藁
> http://www.psychedance.com/test/read.cgi/tech/991795568
まっとうでないpath喰わせたら、本来ならば
302(Apacheが勝手に吐くけど)吐いて
Location: 入れる必要があるのよねー。
そのうち善処するです。
> http://www.psychedance.com/test/read.cgi/tech/991795568/st=50
st= は、path の構成要素として扱われるんだけど、
今は数字が入ってなかったらあまり動作が
芳しくないかもしれん。0-0 と同じ動作をするかな?
> http://www.psychedance.com/test/read.cgi/tech/991795568/50-
だと、想定される動作をするはず。
- 631 :♯6411 :01/09/02 02:43 ID:GBYgH3SU
- >>628 どーでもいーけど、
なんでL-M吐かないんだろ??
- 632 :デフォルトの名無しさん :01/09/02 02:46 ID:nSC2NXko
- >>631 例の"server-parsed"のためと思われ
- 633 :デフォルトの名無しさん :01/09/02 02:48 ID:vmaCIJDM
- >>628
無駄になるのは、index2.htmlスレ関連の方。
read.cgiでは、意味がある。
>>631
mod_gzipだと、そのあたりがいまいち。
304でのリロード拒否も考えると、cgi挟みたくなるよね。
- 634 :♯6411 :01/09/02 02:51 ID:GBYgH3SU
- >>633 mod_expire入れられれば…
- 635 :デフォルトの名無しさん :01/09/02 02:55 ID:vmaCIJDM
- mod_gzipでcgiの出力も圧縮できるんでしたっけ?
そこら辺まで見てないんだけど。
- 636 :♯6411 :01/09/02 03:01 ID:GBYgH3SU
- >>635 できる。
サイケドットコムにはmod_gzip入ってるが、
意図的に www.psychedance.com だけ
mod_gzipしない設定になっていて、
あのサーバが抱えている他のコンテンツは
gzip効かされるようになってる。
漏れも目で確認してみた。
- 637 :- :01/09/02 03:03 ID:SJhkwM6g
- http://www2.bbspink.com/test/check.cgi
HTTP/1.1 200 OK
Date: Sat, 01 Sep 2001 18:00:46 GMT
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
Connection: close
Content-Type: text/html
Content-Encoding: gzip
Content-Length: 684
gzipもlengthも使われてますね
- 638 :デフォルトの名無しさん :01/09/02 03:08 ID:vmaCIJDM
- >>636
できるのかあ。じゃあ、うちのは設定の問題か、勘違いかな。
細かいとこまで見ないで入れちゃったからなあ。
ところで、>>623 のコードどうします?
そのまま取りこむのは、少し抵抗あるんだけど。
- 639 :ひろゆき :01/09/02 04:59 ID:Y47cJeS2
- どうもお世話になってます。
いろいろとありがとうございます。
ノートPCが手元にないもので、インストールができないおいらです。。。
- 640 :デフォルトの名無しさん :01/09/02 05:11 ID:qidyfsQI
- j時間帯的には
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998764722
の★つきひろゆきと思われるが、何でこっちはキャップないの?
- 641 :デフォルトの名無しさん :01/09/02 06:49 ID:OGRZcBVM
- index2とかread.cgiのhtmlにはform書かずに、「書きこみ」に
リンクして別窓開かせるというのか、もしかして激しくガイシュツ?
- 642 :名無し :01/09/02 06:50 ID:kg0l2cpY
- age
- 643 :♯6411 :01/09/02 15:04 ID:DixhmFmM
- >>641 フォームがあそこに付いてるってのが
2chの活性化につながってると思われ。
フォームを外すと、禿げしく活性化が
損なわれること必至なので、熟考が必要。
現に、スレ立ては、昔は表に出てたけど、今は
引っ込んでるでしょ?
もちろん、運営側が脱活性化を狙ってるのなら、
フォームを引っ込めてしまうというのも…鬱
- 644 :♯6411 :01/09/02 15:06 ID:DixhmFmM
- >>639 こっちこそ、大変楽しんでますです。
本業そっちのけで(w
- 645 :デフォルトの名無しさん :01/09/02 15:45 ID:FVpdjhrE
- たまにここをのぞいてるもんですが。
>>623のアイディアをさらに進めて、各レスに <a name="nn"> ってつけて
表示範囲内へのリンクは <a href="#nn"> にするのはどうでしょ。
転送量削減というより便利になるだけだけど。
- 646 :♯6411 :01/09/02 15:57 ID:DixhmFmM
- >>645 path仕様では実装済みです。
現仕様に適用する作業はやってないですが、
できないこともないと思われ。
http://www.psychedance.com/test/read.cgi/tech/998997848/351-400#397
- 647 :デフォルトの名無しさん :01/09/02 15:58 ID:McpMRzTs
- >>623
これcvsにあてちゃっていいんでしょーか
- 648 :♯6411 :01/09/02 16:02 ID:DixhmFmM
- >>647 未評価なんだけど、
評価可能なように、conditionつけてお願いしまーす
- 649 :デフォルトの名無しさん :01/09/02 16:03 ID:McpMRzTs
- >>648
それにしてもconditionだらけになってきたので
いじるのもつらくなりつつあるような(^^;
- 650 :デフォルトの名無しさん :01/09/02 16:10 ID:McpMRzTs
- >>623
・強引に4バイト比較にした(警告が出る)
アライン無視で *(long *)化して比較してるんですか。
これはやめたほうがいいと思われ。
環境変わると死ぬので将来サーバ環境変更したときに危険
- 651 :♯6411 :01/09/02 16:10 ID:QJw7snFQ
- >>649 仕様確定している新機能は、
そろそろcondition外してもいいんだけどねー。
これはみんなのコンセンサス必要。
いちお、古い分はリポジトリに残ってるわけだし。
- 652 :デフォルトの名無しさん :01/09/02 16:12 ID:FVpdjhrE
- おお、できてますな。便利ですなり>>646
そういう仕様のすり合わせはちゃんと読んでないのでもぐります...
- 653 :♯6411 :01/09/02 18:29 ID:ZI/K/6dI
- >>650 サイケドットコムに反映した。
rewrite_href()に限らず、漏れが書き下ろした
モジュールは、どなたでも手を着けて
くださって結構。(そのためのcvsでしょ?)
rewrite_href2()は、葬れると思われ。
(本人もそういってるし)
- 654 :デフォルトの名無しさん :01/09/02 19:36 ID:McpMRzTs
- zz_GetStringリファインしてみた。
あと'=' がない場合が想定されていなかったので、無い場合は無視するようにしたっす。
あ、commitのcomment入れ失敗。日本語文字が消えてる(^^;
- 655 :デフォルトの名無しさん :01/09/02 19:54 ID:McpMRzTs
- >>624 で入れたやつ、rawmodeでもURLがタグ化されてるけどいいの?
- 656 :デフォルトの名無しさん :01/09/02 19:54 ID:nSC2NXko
- >>631-634 Last-Modifiedの件だけど オレのところのApacheで確認してみた
ところ mod_gzip使ってもserver-parsedになってない静的コンテンツは
ちゃんとLast-Modified吐いてます ということでserver-parsedを外しても
問題がないのなら外してもらった方がいいですね
あとExpiresヘッダがらみの部分が現在
#if 1
get_lastmod_str(expires_str, zz_fileLastmod + 5);
#else
:
#endif
とかなってるけど まぁ実際には EXPIRES が定義されてなければExpiresヘッダは
吐かれないけど もしこのままExpiresヘッダを吐いたとすると mtimeの
5秒後にexpireされてしまう......ということは事実上"Pragma: no-cache"と
ほとんど等価になってしまってブラウザでキャッシュされなくなってしまうような
気がするんだけど......
- 657 :656 :01/09/02 20:56 ID:nSC2NXko
- server-parsedの場合これどうかね?
Apache module mod_include
XBitHack directive
Syntax: XBitHack on|off|full
Default: XBitHack off
Context: server config, virtual host, directory, .htaccess
Override: Options
Status: Base
Module: mod_include
The XBitHack directives controls the parsing of ordinary html
documents. This directive only affects files associated with the MIME
type text/html. XBitHack can take on the following values:
:
full
As for on but also test the group-execute bit. If it is set,
then set the Last-modified date of the returned file to be the
last modified time of the file. If it is not set, then no
last-modified date is sent. Setting this bit allows clients and
proxies to cache the result of the request.
- 658 :♯6411 :01/09/02 21:29 ID:rH8fTNpc
- >>657 そもそも、server-parsedにしてる
理由って、adとか差し込むため?
- 659 :♯6411 :01/09/02 21:29 ID:rH8fTNpc
- >>656 Expires: の件に関しては、
途中で投げちゃったので、
深く追求しないで…鬱
- 660 :655 :01/09/02 21:33 ID:McpMRzTs
- rawmodeでタグ化してるけどってのは、
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848&raw=0.0
これ見るとrewrite_href*が処理されてるように見えるんだけど。
- 661 :655 :01/09/02 21:37 ID:McpMRzTs
- >>660
って勘違い。鬱
- 662 :デフォルトの名無しさん :01/09/02 22:18 ID:df.8HYUw
- どちらにせよ個々のPCの時間がそんなに精度良くサーバと
合ってるはずないんで Expires ヘッダ使うのは無理だと思われ
- 663 :♯6411 :01/09/02 22:23 ID:rH8fTNpc
- >>662 Expiresに関しては、どちらかとゆーと
キャッシュサーバに対する妥当性を与える
手段としてあれこれ研究してたす。
ウチの会社で使ってるのはSquid-2
- 664 :デフォルトの名無しさん :01/09/02 22:27 ID:McpMRzTs
- >>662
Expiresの時刻はDateヘッダの時刻との差を出して
有効期間を割り出すものじゃないかと思うけど。
RFC2616
>13.2.4 Expiration Calculations
> freshness_lifetime = expires_value - date_value
- 665 :デフォルトの名無しさん :01/09/02 22:28 ID:nSC2NXko
- >>663 とするとCache-Controlでわ?
- 666 :♯6411 :01/09/02 22:36 ID:rH8fTNpc
- >>665 IE5では、Expires:で保障されてる
オブジェクトに対しては、サーバに問い合わせすら
しない、という噂を聞いて、いろいろ試してた
んですわ。たとえば、過去ログとかは有効期限を
長めに設定しても生きていける可能性が
あるわけでしょ?
/* ためしに廃棄期限をちょっと30秒先に設定してみる */
という部分が、その実験の名残。
先日出た結論 >>336 >>391 以降 では
.cgi ? などという文字がURLに含まれていると、
キャッシュサーバだけでなく、UAもExpiresを信用しなく
なるのでは? ということだった。これに関しての
実験は、後ほどしてみる。
- 667 :662 :01/09/02 22:45 ID:df.8HYUw
- >>664
すんません、逝ってきます
- 668 :デフォルトの名無しさん :01/09/02 22:48 ID:nSC2NXko
- >>666 なるほど......ただ問題は有効期限切れでexpireされると キャッシュから
捨てられてしまうため 今度は逆にコンテンツが変化していなくても取得しに行って
しまうことになるので そのあたりのトレードオフを検討する必要がありますね
まぁおっしゃる通り過去ログなら有効期限を1年ぐらいにしておけばいいのかも
知れませんけど
- 669 :♯6411 :01/09/02 22:53 ID:rH8fTNpc
- >>668 詳しく実験してないんだけど、
大筋では、expiredなオブジェクトに対しても、
I-M-S付きで取りに逝ってくれるようなので、
無駄ではない、かもしれん。
今は別の作業やってるので、Expires:の検証ができぬ。
- 670 :デフォルトの名無しさん :01/09/03 05:03 ID:TpCC4vQc
- >>568 を読み流してた。。
read2ch.hから、
#defineKatjusha_Beta_kisei
がなくなってます。
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998695422&st=81&to=81&n=true
その他、CM_BBSPINKやLOGLOGOUTはどうなんだろ?
- 671 :♯6411 :01/09/03 05:21 ID:L5jSUf32
- >>670 いつのまにか消えてますな(w
いま調べたら、リポジトリには
ハナっからかちゅーしゃ規制定義が
入ってないっぽ。
漏れも、なんであちこちに
Katjusha_Beta_kisei
入ってんだろー? とギモンにはなってた
んだが…まーいっか。
- 672 :♯6411 :01/09/03 06:15 ID:L5jSUf32
- そろそろ寝るか…
要望: だれか、現行版(5.10?)とほぼ同じもの(?)に、
タグつけといてもらえませんか?
漏れはどの時点が取り込まれたか、いまいち
覚えてませんです。
- 673 :デフォルトの名無しさん :01/09/03 09:10 ID:.8abJrUE
- Ver5.10の導入報告は前スレ608
CVSの導入が前スレ739(commitが764)
というわけで、Ver5.10は残ってない
5.10以前に導入され、苦情や問題の無いcondition
NEWBA
DEBUG
GSTR2
こいつらはOK
GZIPは、プロセス数問題があるので保留
PREVENTRELOADは、削除依頼板に若干気になる発言があるので保留
ZLIBは、導入時にzlibがなく、入っていない
- 674 :デフォルトの名無しさん :01/09/03 13:38 ID:nLIVOBVk
- 「掲示板に戻る」をindex2.html→index.htmlに。
潜在的なバグ
readSettingFile()
if (cptr[len] == '='
cptr + len < endp を確認してからにしないとまずい。
dat_out_raw()
pPrintf(pStdout, "%.*s", BigLine[i+1] - BigLine[i], BigLine[i]);
datに'\0'が含まれていた場合に、期待した動作をしない。
(最近はbbs.cgiで'\0'をはじいている気がするし、
mod_gzipが.datも圧縮するようになれば、あまり問題ではない)
- 675 :♯6411 :01/09/03 13:40 ID:xDKgLLeA
- >>673 そうだったのか、tnx.
リポジトリの最初の方が、5.10にやや近い、
ということにしとけば、いいのかな?
- 676 :デフォルトの名無しさん :01/09/03 14:35 ID:eRhXWXRI
- >>674
/index.html より / にしたほうが明らかにバイト数が少なくてすむ。
- 677 :デフォルトの名無しさん :01/09/03 18:04 ID:Z2g4dJyM
- >>676
>今までは、http://teri.2ch.net/accuse/index2.htmlとかで
>ブックマークしてたと思いますが、
>これから、http://teri.2ch.net/accuse/になります。
>index2.htmlってのがいらなくなるわけですね。
http://teri.2ch.net/accuse/
だと、gzip化されてない様に見えるが?
mod_gzipが導入されるまでの移行中は、どこに戻すのがいいのやら。
- 678 :仕様無しさん ◆NwLv.g/w :01/09/03 19:32 ID:shKKa9Vo
- >677 とりあえず #defineで設定して後ですぐに変えられるようにしとくのが吉かと。
- 679 :デフォルトの名無しさん :01/09/03 20:28 ID:MKp/si06
- ちょっと Expiresヘッダを吐いた場合のIE5.01とネスケ4.72の
振る舞いを観察してみました
IE5.01 -> Expiresは無視されている模様(Expiresを吐かなかった場合との差が見られない)
ネスケ4.72 -> 当該ページを表示させてから「戻る」ボタン等で前のページに戻ってから
「次」ボタン等で当該ページに戻った際に次のような振る舞いになる
Expire日時前 -> そのままキャッシュの内容が表示される
Expire日時後 -> If-Modified-Since付きでコンテンツを取りに行く
Statusが304ならキャッシュの内容を表示
このケース以外(URLを直打ちした場合,リンクからジャンプした場合,
リロードボタンを押した場合等)ではExpiresなしの場合と振る舞いの違いがない模様
ってな感じでした なお >>664 で指摘されているRFCの規定にもかかわらず
ネスケはコンテンツをexpireさせる日時はPC側の内部時計のものを使ってしまっている模様
ところで ネスケ4.72で次のような問題があるようです
gzip圧縮されたコンテンツでContent-Lengthヘッダが指定されていると
Last-Modifiedによる指定が無効になってしまう
これはネスケ側のバグではないかと思います 現在2chサーバで稼動中のread.cgiでは
Content-Lengthヘッダがありませんが これが指定されるようになると
ネスケでは(少なくとも4.72では)If-Modified-Since付きのリクエストを
行わなくなって毎回コンテンツを取りに行くようになってしまうと思います
mod_gzipではdechunkを行うとContent-Lengthヘッダを生成させるので
(そうでなくともスタティックなコンテンツではそうですが)これは
頭の痛い問題ですねぇ......
- 680 :♯6411 :01/09/04 00:04 ID:.iUWuuDs
- cvs追いかけてる人は知ってると思うけど、
いま、インデクスの実装を行っており、
設計はほぼ固まりました。
概要・特長は以下の通り。
・インデクスのサイズは 4096 bytes
・/board/dat/idx/XXXXXXXXXX.idx
・ディレクトリ idx がなかったら、インデクスは作成されない
・bbs.cgiの改造はたぶん不要
・完璧な排他制御(w
・スピンロック不使用
・SMP safe(まじかよ)
仕様はほぼ決まっているが未実装な機能は以下の通り。
・あぼーん時のインデクス再構築
…っていっても、いまからmainに組み込むことを
考えると、もちっと道のりあるかな?
- 681 :デフォルトの名無しさん :01/09/04 00:27 ID:1lIywugU
- read.cgi更新されたもよう。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999451574&nofirst=true&st=573&to=573
- 682 :♯6411 :01/09/04 00:28 ID:.iUWuuDs
- >>681 ここのカレントじゃなく、
zlib使うようにしたバージョンかな?
- 683 :デフォルトの名無しさん :01/09/04 00:29 ID:Mgf2Z89w
- ありゃ、生DATのgzip圧縮転送って結局まだ有効になってないの? >新read.cgi
- 684 :デフォルトの名無しさん :01/09/04 00:34 ID:1lIywugU
- なんかindex.htmに戻るようにしただけな気がする。
- 685 :デフォルトの名無しさん :01/09/04 00:45 ID:ydrizmO6
- そうかな?
- 686 :♯6411 :01/09/04 00:49 ID:MmUrMvH6
- あまりアグレッシヴな改造やると
嫌われるかなあ? (鬱
- 687 :デフォルトの名無しさん :01/09/04 01:40 ID:LkAi.Uls
- 早く「>>」規制を解除してほしいなぁ。
いちいちst=&to=打ち込めば済むんだろうけど、
ほとんどの人は「レス全部」押すだろうし。
「前100レスを読む」ボタンつけるのととどっちがいいんだろ。
- 688 :デフォルトの名無しさん :01/09/04 01:53 ID:1lIywugU
- 「掲示板にもどる」を修正。
index2.cgiチェックは標準からはずした。
index2.htm[l]は使われなくなるようなので、index.htm[l]に変えた。
SERVER_SOFTWAREにmod_gzipがあったら、index.htm[l]も出さないようにした。
- 689 :デフォルトの名無しさん :01/09/04 08:03 ID:b.YsqqHc
- -DUSE_PATHや-DGZIPって、外すとコンパイルすらできないね。
- 690 :デフォルトの名無しさん :01/09/04 11:09 ID:1lIywugU
- >>689
GZIPとZLIBなしでのコンパイルは、>>688で直してある。
- 691 :♯6411 :01/09/04 14:01 ID:h7Jd1mr6
- >>689 外してコンパイルの
テストはほとんどしてなかったろで(スマソ
ただ、自分が掻いた部分に関しては、
path_depth == 0 のときは
従来の動作を行うように
心がけてたんだけど…ここ2日くらいの
変更についてってない(鬱
- 692 :デフォルトの名無しさん :01/09/04 14:06 ID:EcqU4D62
- USE_PATH未定義でコンパイルできるようにして
rewrite_href2をrewrite_hrefに取り込んでみた。
- 693 :♯6411 :01/09/04 14:44 ID:.iUWuuDs
- >>692 新バージョン見まスた。
お手数おかけしまスた。
- 694 :デフォルトの名無しさん :01/09/04 15:50 ID:s4.H7M7U
- やっぱりそろそろ不要な#ifdefを整理したほうがいいような。
- 695 :♯6411 :01/09/04 16:09 ID:.iUWuuDs
- >>694 ちなみにウチのプロジェクトだったら、
ひととおりチェックして機能的に採用されそうなものは
条件を取り払ってしまう、というポリシーっす。
今回は誰がプロジェクトマスターというわけでも
ないからねえ(w
- 696 :♯6411 :01/09/04 16:35 ID:.iUWuuDs
- index仕様をcommitした。
殺してあるので、実験したい場合は以下に。
・#define USE_INDEX
・mkdir board/dat/idx
これ主体に書き換えることができれば、
BigBuffer, BigLineを置き換えていくことになろう。
- 697 :♯6411 :01/09/04 16:39 ID:.iUWuuDs
- >>696 linuxでは動いているが
freebsdでは動いてないっぽ…鬱
- 698 :デフォルトの名無しさん :01/09/04 16:51 ID:EcqU4D62
- >>696
read.c
> /* XXX これはウソ、Expires: は、
> 現在時間を基準にすべきである */
ローカル時計じゃなくてDateヘッダ(サーバ時間)基準だってば。
- 699 :デフォルトの名無しさん :01/09/04 16:52 ID:EcqU4D62
- >>698
ってread.cgiはそのサーバで実行してるから同じことか (鬱
- 700 :♯6411 :01/09/04 17:09 ID:.iUWuuDs
- >>697 単にサイケどっと混むのパーミションの
問題だった(鬱
>>698 おいしいつっこみありがとう。
これで二人とも鬱だ氏のう
- 701 :デフォルトの名無しさん :01/09/05 13:47 ID:Il0l9chs
- CFLAGSに"-march=i686"って入れても大丈夫かな?
あと実運用のではLDFLAGSに"-s"って入れた方がバイナリサイズが小さくなる
ので その分CGI呼び出しでの負荷が軽くなる......かな?
- 702 :♯6411 :01/09/05 14:50 ID:2LugT.hk
- >>701 ld -s でやってるわけじゃないけど
make strip ってのが用意されてる。
- 703 : :01/09/05 21:26 ID:ZOwDxD/w
- read.cgi ver5.12 (01/9/5)
- 704 :♯6411 :01/09/05 21:31 ID:zceo8xV2
- >>703 まだまだだねー
漏れは別の仕事が入ったので、休憩中。
- 705 :デフォルトの名無しさん :01/09/05 21:32 ID:F4TkSYjU
- >>703
これってcvsのソース持ってってくれてるのかなあ?
- 706 :デフォルトの名無しさん :01/09/05 21:48 ID:F4TkSYjU
- >>705
されてなさげか
- 707 :デフォルトの名無しさん :01/09/05 21:52 ID:d3E9QeVc
- ここの成果を参考にしつつ、夜勤さんが管理しているソースを夜勤さん自身が
メンテしているのだろうね。トラブルも怖いし転送量削減に関係ない部分の
アグレッシブな変更はやはりちょっと手を出しづらいのであろう。
- 708 :名無し :01/09/06 00:31 ID:4dWQq6IU
- sage でやってると夜勤さんは気付かないらしい。
みんなから、もう忘れ去られてるし。
- 709 :辛口 :01/09/06 00:56 ID:TLbpbvsU
- 俺だけかもしれないけど、新しいおもちゃを買ってもらった子供の気分だったね。
read.cgiに新機能なんか要るわけない。
何か別な機能が必要になれば、別途用意すればいい。
余計な機能は邪魔。
便利になるようにするのはいい。
ただ、それがピーク転送量や負荷に影響する可能性があれば
簡単に時間帯制限を設けたり、機能を外したりできるようにしておくべき。
(ほとんど影響しないならば、是非取り入れるべき)
とは言っても、決めるのはここにいる誰かではなく、
夜勤さんであり、ひろゆきである。
特にread.cgiには夜勤さんの決定が最重視されるだろう。
もちろん好き嫌いで決めるのではなく、いろいろ試し、
転送量や負荷を調べ、結果を見て判断するだろう。
ただ、現状のシステムを変化させる必要があるような機能は
夜勤さんはおそらく取り入れない(変更できない)。
現状に合わせて、その中で最善な機能を選択すると思われる。
read.cgiに求められるのは、ピーク時の転送量と負荷の削減。
忘れられかけているが、転送量問題が表面化するまでは、
サーバー負荷が最大の懸案だった。
特殊機能があっても使わなければ同じとは言っても、
ここ(2ch)は、他の人や組織から悪意を持って攻撃される事もある(あった)。
負荷が増える可能性も全て消しておかなければならない。
復帰作業が、スクリプト名を公開せず、
サーバーや時間帯によって厳しく決め事を設けているのを考えればわかるだろう。
便利な機能でも、負荷がかかるようならおそらく外される。
index.htm[l]から"投稿日"が消え、レスから曜日も省かれているのに、
read.cgiは投稿日を非表示にするオプションも(まだ)ない。
文字通り「1バイトを削る」という作業を行っているのに、
常時全レスにアンカーを設定する事に、夜勤さんは同意するだろうか。
natto等に導入されていたread.cgi Ver4.23には、
読みこみdatの最大値を時間帯によって変動させていた。
(もちろん、サーバーの負荷を考慮して。実際、bbspinkの最大値が変更された)
こんなオプションも(まだ)ない。
こういった基本的な点をもう一度重視して、
安定化を図るべきではなかろうか。
で、良さそうと思えるバージョンが安定したら、
そこで簡単なオプション説明でもつけて夜勤さんに推薦するといいのでは?
ここでずっと続けているから、夜勤さんも安定していないと考えて
取り入れないのかもしれない。
- 710 :♯6411 :01/09/06 01:00 ID:ae./7xbU
- >>709 「新しいおもちゃ」の部分は禿胴。
- 711 : :01/09/06 04:01 ID:IAYQ/SXs
- 楽しげな新機能を思いつきました。
新規ログ10件表示にして、表示順を逆にして新しいレスを上に表示する
書き込み後再び、この10件表示にすれば、チャットモードの完成。
実況スレがさらに活発化!(あかんやん・・。)
このモードでは、無駄な部分は徹底的に削って超簡易表示モード
日付も時間も表示する必要は無い。
一行レスが乱れ飛ぶ事必死!(笑)
- 712 :デフォルトの名無しさん :01/09/06 08:22 ID:0iK.UQWw
- >>709
同意
「こんなん作ってみました」じゃなくって、「ここをこう変更するだけで
○○の低下は××程度に抑えたまま転送量をここまで削減することができます」
という具体的な数字を挙げながら説明をして、変更のリスクに見合うだけの効果が
確実と説得できないと採用されないと思うよ。
#リーマンなら当然分かると思うが。
だからここで30個アイディアが出てそれをこのスレのバージョンですべて採用しても
本番環境では29個ボツになるかもしれない。
それを分かった上でいろいろ試すのはいいんじゃないかと思うけど。
このスレももはや直接的な実装よりも、そういう斬新なアイデアが
出てこないかという部分で期待されてるんだろうし。
335KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30