Under-Construction

▲Zaurus Top | ↑Up(自作のもの)


2011-09-19

q2p.pl

最高に使いやすい q2ch だが、最近は更新が止まっており、サーバの忍法帖導入に伴い、書き込めなくなっていた。閥努 閻怒さんが、自立サーバ型のプロキシを作成、公開していたが、どうもメモリの無駄と感じて、inetd 経由で動作するように改造した。

用意するもの

perl
私のところでは 5.6.1-8.3-2 というものが入っていた。たとえばここから→http://digit.que.ne.jp/visit/file/perl_5.6.1-8.3-5_arm.ipk
q2p.pl
こちらから

インストール

  1. /etc/service に、次の行を加える。
    q2p     8080/tcp
  2. /etc/inetd.conf に、次の行を加える。
    q2p     stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/q2p.pl
  3. /usr/sbin/q2p.pl にコピーする。必要なら先頭付近を編集する。
  4. inetd を再起動する。
    kill -HUP `cat /var/run/inetd.pid`
  5. q2ch にバイナリパッチを当てて、Proxies.conf ではなく、Proxies.ninp を参照するようする。
    # sed 's/Proxies\.conf/Proxies.ninp/g' < q2ch.bak > q2ch.new
  6. Proxies.ninp を作成する。
    /home/zaurus/Applications/Network/modules/Proxies.conf をコピーして type = 1 とする。

解説

忍法帖対応の部分は、閥努 閻怒さんの部分そのままです。作成、公開について感謝します。キージェネの公開についてはどうかと思いますが。改造は自由と書かれていましたので、好きに修正しましたが、問題があるようでしたら、下のメールフォームからご連絡下さい。私が公開しているソースについても、同様に、再配布や改変は自由です。

忍法帖対応とは、要は、適切なクッキーをセットすることです。サーバから送られてきたクッキーは、/var/log/cookies/ に保存されます。忍法帖に非対応のブラウザは、これらクッキーを解さないので、リクエストにクッキーを付加する改造を行います。

書き換えプロキシを常時起動しておくとメモリがもったいないので、inetd 経由で動作するようにしました。

q2ch はプロキシ情報として、/home/zaurus/Applications/Network/modules/Proxies.conf を参照する。しかし、このファイルは Netfront なども参照する。croninet は参照しなかった。Netfront がプロキシを通ると遅くなる、という問題が生じる。
→q2ch をバイナリパッチして、Proxies.ninp を参照するようにする。バイナリパッチは、バックアップの作成やら、cmp コマンドなどでのチェックやら、用心しましょう。

コメントアウトされている $dbg_file を定義すると、デバッグ用のログを出力するようになる。どのようにリクエストを書き換えしているのかが記録に残せる。ディスクが溢れないように注意。

q2ch 本体で対応してもらえるのが本来なのだが、ほぼ開発が終了しているソフト、メーカーに見放されたプラットフォーム、頻繁な鯖変更、となると、プロキシ使用が一番いいのかもしれない。q2ch 本体でプロキシを設定するのではなく、システムのプロキシを見る仕様になっているのは、ネットワークカードの差し替えに伴うプロキシ変更を反映させたい、という過去の経緯によるものらしい。

私自身は、忍法帖の仕組みや全機能を把握しているわけではありません。とりあえず、普段、q2ch で見ている板に読み書きできれば満足しています。とにかく、バッチでダウンロードできて、最小限のキーで巡回できて、フルキーで書き込めるのがいい。

ipk 化は、インストール手順を見ると、postinst スクリプトが複雑で、いろいろとリスクが高いことはご理解いただけると思います。不可能ではないとは思いますが。


近藤靖浩