■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50
read.cgi改良スレッド
- 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
 は直ってないっぽいです。
 
 
- 586 :名無し娘。 ◆vP.bOZFQ  :01/09/01 02:53 ID:EhmPvxQ6
-  >>582 
 お疲れさまです。要はどっちにも対応できることですよね。
 レス1からのリンクも明らかに逆効果かどうかわからないくらいです(^^;
 リンク先を実際に参照してもらった回数のうち、リンクがなければ飛ぶのをやめた
 人と、リンクがなくてもきちんと ls,st,to などを指定した人の分を除いた量が、
 「約2割の削減」よりも大きいか小さいか。。。
 
 ところで、そうすると -DCUTRESLINK しない場合というのは、どういう
 事態が想定されているのでしょうか。
 # ソース読んだだけではわからなかった(^^;
 
 
- 587 :♯6411 :01/09/01 02:55 ID:LOycKPho
-  >>585 あとでデバッガで追ってみるね(涙 
 
 
- 588 :♯6411 :01/09/01 02:58 ID:LOycKPho
-  >>586 path仕様では、リンクの長さが 
 短くなるため、あえてカットせずにいます。
 で、転送総量削減を期待して、
 必ずchunk単位になるようにリンクを張り直します。
 詳細は、サイケダンスドットコムで遊んでみてくだちい。
 
 いまは、L-Mをchunk毎に求められるように
 最適化を施してる最中です。
 
 
- 589 :デフォルトの名無しさん :01/09/01 03:18 ID:41gLtufk
-  rewrite_hrefなんですけど、 
 if (sscanf(
 "<a href=\"../test/read.cgi?bbs=%20[a-zA-Z0-9_]&key=%12[0-9]"
 "&st=%u&to=%u&nofirst=true\" target=\"_blank\">>>%u</a%c"
 , ...) == 6 && 最後の%c == '>') {
 /* >>nn の場合 */
 ・・・
 2つ目の'>'までカット
 } else if (sscanf(
 "<a href="../test/read.cgi?bbs=%20[a-zA-Z0-9_]&key=%12[0-9]"
 "&st=%u&to=%u\" target=\"_blank\">>>%u-%u</a%c"
 , ...) == 7 && 最後の%c == '>') {
 /* >>nn-nn の場合 */
 ・・・
 2つ目の'>'までカット
 }
 なんてのは駄目ですか?
 重くなるかもしれないけど。
 あ、sscanfの%[]のフォーマットに'-'を入れる場合、どうやったか忘れた。
 
 
- 590 :♯6411 :01/09/01 03:21 ID:LOycKPho
-  >>589 さいしょはhrefから抜こうと 
 思ってたんだけど、それよりも
 エレメント抜き出した方が確実だと
 考えたのだ。
 
 っていうか、余所に公開するコードに
 scanfを使うのは漏れの趣味じゃない。
 自作一発ツールでは多用するけど(w
 
 
- 591 :デフォルトの名無しさん :01/09/01 07:45 ID:UJUxMf.6
-  とりあえず1つデバッグ 
 
 dat_out_raw()の最後、のfor内、
 pPrintf(pStdout, "%s\n", BigLine[i]);
 を
 #ifndefCUTRESLINK
 pPrintf(pStdout, "%s\n", BigLine[i]);
 #else
 pPrintf(pStdout, "%.*s\n", BigLine[i+1] - BigLine[i], BigLine[i]);
 #endif
 に直さないとまずい。(BigLineを'\n'-terminateに変更したため)
 
 が、>>563のエラーは、BigLineの形式を変える前から起きていたので、
 これが原因ではない。
 >>563までの原因は>>575で、>>585の原因がこれ(↑)であれば、
 解決している(かもしれない)。
 
 あと、
 http://www.psychedance.com/test/read.cgi/tech/998921988/10-20
 等の時、「続きを読む」が欲しいような。
 全レス表示や最新レス表示だと「新レスの表示」が出るけど。
 
 
- 592 :デフォルトの名無しさん :01/09/01 12:50 ID:twr9sQ6c
-  >>591 
 上の話 commitしときました。
 
 
- 593 :デフォルトの名無しさん :01/09/01 13:41 ID:/.JZzzqk
-  dat_out_index()、初めて目を通したんですが、 
 呼び出されるたびにdatを全部読んで解析して・・というのは
 さすがに負荷が大きいような。
 bbs.cgiがindex2.htmlを作成する時は、
 http://piza2.2ch.net/tech/html/998997848.html
 こういうファイルにキャッシュされたデータを利用しています。
 これを何とか利用する方法は・・・
 
 また、板別の設定(N_INDEX_THREADS等)は、規制実施等との整合性を保つために
 http://piza2.2ch.net/tech/SETTING.TXT
 の内容に合わせたほうがよいかと思います。
 
 
- 594 :♯6411 :01/09/01 13:50 ID:apo2ymi.
-  >>593 そのへんの仕様を知らなかったので、 
 あーゆー形で仮実装してたんですが、
 使える設定があるのなら、喜んで
 流用させてもらうです。
 
 いずれにせよ、htmlを読んで再走査するよりは、
 datから作り出した方が速い、んじゃないかなと
 いうのが今の考えです。
 
 
- 595 :♯6411 :01/09/01 14:04 ID:apo2ymi.
-  ヘッドラインとか 
 広告とかの
 テンプレートは
 あるんだろうか?
 
 いずれにせよこの機能は使われずじまいになる
 可能性も大きいし(鬱
 
 
- 596 :♯6411 :01/09/01 14:26 ID:apo2ymi.
-  cvsweb 氏んでる? 
 
 あっそうだ、今日はAir H"買いに逝こう♪
 
 
- 597 :♯6411 :01/09/01 14:39 ID:apo2ymi.
-  >>591 
 > あと、
 > http://www.psychedance.com/test/read.cgi/tech/998921988/10-20
 > 等の時、「続きを読む」が欲しいような。
 > 全レス表示や最新レス表示だと「新レスの表示」が出るけど。
 
 「自分以降」のchunk候補を表示してあげると、
 ユーザに優しくなるだろうね。漏れも思った。
 
 …chunk表示は、ひとつだけ問題を孕んでるんだ…
 それはまた後ほど話すよ…
 
 
- 598 :♯6411 :01/09/01 15:07 ID:apo2ymi.
-  >>563 
 > 500 Internal Server Error
 のバグ判明。
 
 getLineMax() の最後の方に、
 BigLine[line+1] = BigBuffer + zz_fileSize;
 があるんだけど、結果的にこれがsentinelの
 役割を果たしてない。結果、dat_out_raw()で、
 最後の行を踏むと、NULLポインタを手繰って氏ぬ。
 
 BigLine[line] = BigBuffer + zz_fileSize;
 が妥当ではないかと思うのだが、現在手元の
 read.cはマージしたくないので、どなたか
 追試・修正求む。
 
 それにしても、つくづくemacs gdbは便利やのう。
 
 
- 599 :♯6411 :01/09/01 15:22 ID:apo2ymi.
-  >>598 これは直接関係のない潜在バグだった(鬱 
 
 最終行で、NULL - &BigBuffer[n] を計算
 した結果、十分大きな値(21億超えてるかも)に
 なっちゃうんだけど、BigLine[lineMax-1]は
 たいていNULL terminateされているので(藁
 結果オーライ、と。
 
 
- 600 :デフォルトの名無しさん :01/09/01 15:27 ID:twr9sQ6c
-  >>599 
 BigLine[line]が未記入なのは気持ち悪いのでcommitしてみた。
 
 
- 601 :♯6411 :01/09/01 15:30 ID:apo2ymi.
-  なんとなくわかった。 
 問題は、397がけっこうサイズ大きくて、
 printf("%.*s") の * が耐えきれなくなってる
 ものと見た。
 
 というわけで、これをwrite/gzwriteを用いた
 ものに変更すると、問題は解決
 すると思うっす。
 
 ところで、linux-2.4だと、mmap(MAP_PRIVATE)の
 挙動が変わってます? 今のところ、
 ファイルサイズを超えた割り当ては、
 0で埋められた名無しさんメモリが割り当てられる、
 という前提でコード書いてんですが…
 > |  - -)
 
 
- 602 :デフォルトの名無しさん :01/09/01 15:40 ID:YSt69fX.
-  もひとつ修正お願い。 
 >>591と同じところで、改行が2つ出ちゃってます。
 × pPrintf(pStdout, "%.*s\n", BigLine[i+1] - BigLine[i], BigLine[i]);
 ○ pPrintf(pStdout, "%.*s", BigLine[i+1] - BigLine[i], BigLine[i]);
 
 
- 603 :デフォルトの名無しさん :01/09/01 15:44 ID:YSt69fX.
-  >>563って、getLineMaxやdat_out_rawのprintf()の変更を加える前からです・・・ 
 >>575が原因であればいいんだけど。
 
 
- 604 :デフォルトの名無しさん :01/09/01 15:46 ID:twr9sQ6c
-  >>602 
 あてた
 
 
- 605 :デフォルトの名無しさん :01/09/01 16:21 ID:D.BYJFUs
-  >>601 
 多分、gzprintf()が、
 char buf[4096];
 vsnprintf(buf,4096,format,va);か
 vsprintf(buf,format,va);のどちらかになる。
 下なら当然バグる。
 上でバグるならライブラリの問題だが、どっちにしろ正しい結果にならない。
 
 
- 606 :VC++まだ箱のなか厨房(w :01/09/01 16:49 ID:/IvlKP0E
-  割り込みですいません、 
 
 動作報告にあったやつなんですが、read.cgi 5.10 で
 imode経由の時、「レスを最初から読む」のリンク先が
 「st=1&to=10」のためとんだページで11以降のレスを読み出すリンク
 が表示されないようですが、
 最新版ではこれ、「&to=11」とかなるようには対処済みでしょうか?
 
 
- 607 :605 :01/09/01 17:10 ID:D.BYJFUs
-  >>601 
 gzwrite使うようにした。
 
 ところで、他のところで本文を一括でpPrintf()に渡しているような
 ところはないかな。
 
 
- 608 :605 :01/09/01 17:36 ID:D.BYJFUs
-  8000文字程度のを作って食わせたら、駄目だたーョ。 
 zlibの方をいじった方がよさげなんだが、
 スタック上に10Kぐらいとるのと、vasprintf()使うのとどっちがいい?
 
 vasprintf()使っちゃっていいかな?
 
 
- 609 :デフォルトの名無しさん :01/09/01 17:51 ID:Oz0a82Qk
-  >>608 vasprintf()ってどんな関数なの? Solaris上では見当たらないんだけど... 
 zlibのgzprintf()もどうせ小さな関数だから 文字列長の制限のないor制限の緩い
 関数を自作しちゃってもいいかもね
 
 
- 610 :605 :01/09/01 17:55 ID:D.BYJFUs
-  sprintf内でmallocする。 
 パフォーマンス的にうれしくないが、最も安全。
 
 printf系の関数を自作するのは、つらいっす。
 
 
- 611 :デフォルトの名無しさん :01/09/01 17:55 ID:twr9sQ6c
-  >>609 
 vasprintfってのは、第一引数をポインタのポインタで渡して
 そこにメモリ確保して内容も書いてアドレス書き込んでくれる関数みたい
 
 
- 612 :デフォルトの名無しさん :01/09/01 18:12 ID:bCko6D0s
-  ちょっと提案なんですが、めがびーのように 
 「書き込み後もこのスレッドに留まる」機能を導入するというのは
 いかがでしょうか?主にチャット対策ですね。
 上記の機能のチェックボタンをONにして書き込みした場合、
 再び最新の数十件を表示し、チェックボタンは再びONに
 なっているという具合に。
 脳内シミュレーションでは転送量も削減され、使用者にとっても
 メリットがあり、結構いい感じなんですが・・
 がいしゅつだったら申し訳ありません。
 
 
- 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挟みたくなるよね。
 
 
333KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30