_ [comp] 続・ircd-irc2 2.11.0 変

dancer-ircd や ircd-hybrid を試してみたけれど、前者は日本語 topic が化ける、後者は ircd.conf の書式が全然違うので面倒、ということで ircd-irc2 の問題を調べてみることにする。

  1. 最初に出る「Please wait while we process your connection.」は 020 RPL_HELLO というやつらしい。
  2. RPL_HELLO を出しているのは s_bsd.c の read_listener。
  3. RPL_HELLO を出した後に詰まるので、これの後に呼び出される関数を探す。
  4. s_bsd.c の read_message で read_listener を呼んでいる。
  5. read_listener を呼んだ後にいろいろと処理があるが、DoingAuth が怪しい。
  6. DoingAuth はマクロで、クライアントのフラグに FLAGS_AUTH がセットされているかどうかをチェックしている。
  7. クライアントのフラグに FLAGS_AUTH をセットしているところを探す。
  8. クライアントのフラグに FLAGS_AUTH をセットしているのは s_auth.c の start_auth。
  9. start_auth 内の遅い原因と思われる処理は #ifndef NO_IDENT 〜 #endif でくくられている。
  10. ということは 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 を使えば、ドラッグ&ドロップでタブの並べ替えができるようだ。