■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50
read.cgi改良スレッド
- 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挟みたくなるよね。 
 
- 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"と 
 ほとんど等価になってしまってブラウザでキャッシュされなくなってしまうような 
 気がするんだけど...... 
 
335KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30