M. Takeyama です。
#途中経過報告モード
On Wed, 31 Mar 2004 19:04:46 +0900
takezou
奧平です。ほぼ解決(?)しました。 よかった、良かった。 私の場合、気になっているのでもう少し調査するつもりです。 #/etc/hosts.canna で #ローカルのみの場合はcannaのポート空けないなど制御してそう #などということがわかりましたけど...(調査中:自宅で検証予定) ・SUSE 8.2のcannaパッケージ ・SUSE 9.0のcannaパッケージ --- Canna36p3 ・(SUSE 9.1のcannaパッケージ) --- canna-3.7p1
などをいろいろと調査した結果、-i(-inet)で起動できない理由の 見当がつきました。 基本的には、Canna36p3の中で追加されているパッチの影響のようです。 (canna-3.7p1まだ試していませんが同じ理由だと思っています。) Canna36p3とcanna-3.7p1ではほぼ同じ内容のパッチがあたって いる為 #-i のオプションを付けても起動できるようになりましたが、 #ポートは開いてくれていないので、まだ、どこかに問題がある #のではないかと継続して調査しようと思っています。 動作的は、unix socket でしか動いてくれてなさそう。 INET_SOCKET で動くコードも ifdef で無効にはなっていなそうな 感じでした。 <バグの場所> cannaserverが -i のオプションで起動できないのは起動時のオプション 解析のルーチンにバグ(抜け)があって, -iをはじいてエラーになって しまうようです。 #BecomeDaemonの関数のコマンドラインのパーサ部分のgetopt関数への #パラメータに誤りがあるところまではは付きとめました。 server/misc.c ------------------------------------------------------------ /* Changed the option syntax a little * -m unchanged * -p num unchanged (listen on alternative port) * -s was: -syslog (enable syslog logging) * -i was: -inet (enable use of inet socket) * -d unchanged (enable debugging) * -l level unchanged (set log level) * -u user changed: jail user instead of userID. * -r dir new (jail directory) */ while ((i = getopt(argc, argv, "dl:mp:r:su:")) != -1) { ------------------------------------------------------------ "dl:mp:r:su:" でははく、"dl:mp:r:su:i"になると思います。 #書き方は、"mp:sidl:u:r:"という書き方にした方がわかりやすいと思い #ます。ソースコード的には、"dl:p:r:su:im" の順番ですかね。 ----- M. Takeyama