あら、いつのまにかひろゆき来てるし。スルーかい!
とりあえず上のほうの文章書きなおしてみる。
read.cgiのime.nu挿入ルーチンに一部不具合が発生しています。
(2002/9/11現在、qbサーバのread.cgi ver6.01pなどで確認済み。)
2chブラウザ経由や板トップ表示(/index.html)では当然ながら無関係。
簡単に言うと、
URLに「.2ch.net/」が含まれていると、それ以降にcgiが吐くURLにime.nuが挿入されなくなる。
という現象です。
またime.nuが挿入されなくなった後再び挿入されるようになることもあります。
bbspinkでは、「.2ch.net/」の代わりに「.bbspink.com/」を使うと
pinktower.comが無効化されます。
テスト結果から予測されるime.nu挿入判定ルーチンの流れは
>>258 例は
>>259、
>>261-261 他に広告業者が流用した例(w↓
http://teri.2ch.net/test/read.cgi/sec2ch/1017975892/4
処理の流れを推測:
1. read.cgiが呼び出された当初はmaxLENGTH=0。
2. 表示対象のdatファイル内に書かれたリンク対象のURLを探す。その長さをtmpLENGTHにセット。
3. tmpLENGTH<=maxLENGTHなら5.へ。
4. そのURL中で最後に現れた「.2ch.net/」以降をカットした部分の長さをmaxLENGTHにセット。
(「.2ch.net/」が無ければmaxLENGTH=0に。)
5. maxLENGTH>0なら7.へ。
6. リンクにime.nuを挿入。
7. 2.へ。以下datファイルのチェックが終わるまでループ。
このスレで言う「ime.nu無効化現象」は、maxLENGTH>0のままでリセットされずに
3.→5.→7.→2.→…と進むために生じる。
また「ime.nu復活現象」は、3.→4.と進み4.でmaxLENGTH=0に変更され、
5.→6.へと進んでいくために生じる。
なんでこんなややこしいことになっているのかは不明ですが…
(特に、3.ではカットする前の長さで判定しているのに、
4.で長さを再セットする時はカットした後の長さになっているのか?)
いずれにしろ原因に付いては、ime.nuを除外するかどうかの
判定フラグを、ひとつひとつのURLを処理するごとに
しっかりリセットしていないからだと思われる。