続・ircd-irc2 2.11.0 変, etc.
_ [comp] 続・ircd-irc2 2.11.0 変
dancer-ircd や ircd-hybrid を試してみたけれど、前者は日本語 topic が化ける、後者は ircd.conf の書式が全然違うので面倒、ということで ircd-irc2 の問題を調べてみることにする。
- 最初に出る「Please wait while we process your connection.」は 020 RPL_HELLO というやつらしい。
- RPL_HELLO を出しているのは s_bsd.c の read_listener。
- RPL_HELLO を出した後に詰まるので、これの後に呼び出される関数を探す。
- s_bsd.c の read_message で read_listener を呼んでいる。
- read_listener を呼んだ後にいろいろと処理があるが、DoingAuth が怪しい。
- DoingAuth はマクロで、クライアントのフラグに FLAGS_AUTH がセットされているかどうかをチェックしている。
- クライアントのフラグに FLAGS_AUTH をセットしているところを探す。
- クライアントのフラグに FLAGS_AUTH をセットしているのは s_auth.c の start_auth。
- start_auth 内の遅い原因と思われる処理は #ifndef NO_IDENT 〜 #endif でくくられている。
- ということは NO_IDENT を define すればよい。
config.h を見ると NO_IDENT 及び NO_PREFIX を define するのは「a VERY bad idea」と警告が書かれているが、無視。 NO_IDENT と NO_PREFIX を define してみると、「Please wait while we process your connection.」の後で詰まることはなくなった。
_ [debian] ircd-irc2 2.11.0-1vd3
irc2.11.0-2.11.0+jp8.patch がひっそりと置かれていたのでそれを当て、config.h で NO_IDENT と NO_PREFIX を define して作成。
_ [comp] 続・Tabbrowser Extensions から乗り換え
miniT-drag を使えば、ドラッグ&ドロップでタブの並べ替えができるようだ。