From kondo.hideaki @ oss.ntt.co.jp Mon Dec 8 10:07:11 2008 From: kondo.hideaki @ oss.ntt.co.jp (Hideaki Kondo) Date: Mon, 08 Dec 2008 10:07:11 +0900 Subject: [Ultramonkey-l7-develop 221] Re: =?iso-2022-jp?b?VU0tTDcgGyRCJSIlLyU7JTklbSUwPVBOTz1oTX0bKEI=?= =?iso-2022-jp?b?GyRCREkyQyRLJEQkJCRGGyhC?= In-Reply-To: References: <002801c95865$363b31c0$0501a8c0@hp2210b2xp> Message-ID: <20081208091459.D97B.KONDO.HIDEAKI@oss.ntt.co.jp> 竹林さま、各位 近藤です。 お疲れ様です。 ご確認およびご指摘有難うございます。 インラインにて回答等させていただきます。 On Sun, 07 Dec 2008 22:31:50 +0900 makoto @ kanon-net.jp wrote: > 近藤 さま > > > 竹林です. > お疲れ様です. > > > 以下の点が気になります. > > ○ コーディング面 > > ・inet_ntoa が失敗した場合のエラー判定がない ★ inet_ntoa()については、manページにも少し書かれてますが、 IPアドレス文字列に変換後のデータは、毎回動的に確保 されるメモリ領域ではなく、予め静的に割り当てられた メモリ領域に格納されます。 従って、inet_ntoa()を呼び出すたびに戻ってくるポインタ( アドレス)は毎回同じ値になり、エラーリターン値(0など)が 存在しないので、エラー判定は不要と考えております。 ちなみに、既存ソースコード上では、l7vs_service.h, l7vs_lsock.h, l7vs_dest.h, l7vs_conn.hにおいて inet_ntoa()が多数使われておりますが、やはりエラー判定処理 は行なっていない状況です。 以下のサイトの情報も参考になると思います。 http://www.geekpage.jp/programming/winsock/tips-inet_ntoa.php > > ○ パフォーマンス面 > > ・ログレベルの如何に関わらず memcpy している ★ これについては、inet_ntoa()を使用する上での仕様上の都合とは 言え、(char配列宣言等を含めて)やはり回避したいところとして 悩みましたが、ひとまずDEBUGレベルのログメッセージ以外は、 ログレベル判定をしない方針を踏襲・尊重してコーディングして おります。 皆さまのご意見等を伺い、アクセスログ出力に関しては特例として パフォーマンスを優先するため、DEBUGログと同様にログレベルを チェックした上で、アクセスログ出力に必要な諸々の処理をする方式 に変更しても良いと考えております。 皆さまのご意見等いただけますと有り難いです。 以上よろしくお願い致します。 > > > 以上の点を再考していただけますか. > > > ---------------------------------------------------------------- > Shinya TAKEBAYASHI > > E-mail(private): makoto @ kanon-net.jp > GPG ID : FFD20D1F > GPG FP : 7B5B E0FC B785 7457 683C 47D6 5564 DDDD FFD2 0D1F > ---------------------------------------------------------------- -- Hideaki Kondo From makoto @ kanon-net.jp Mon Dec 8 11:09:03 2008 From: makoto @ kanon-net.jp (Shinya TAKEBAYASHI) Date: Mon, 08 Dec 2008 11:09:03 +0900 Subject: [Ultramonkey-l7-develop 222] =?iso-2022-jp?b?dGlja2V0IzE0MjIzIFVOSVggGyRCJUklYSUkJXMlPSUxGyhC?= =?iso-2022-jp?b?GyRCJUMlSEA4QC48OkdUO34kTiVQJTAkSyREJCQkRhsoQg==?= Message-ID: 各位 竹林です. お疲れ様です. ticket #14223 に対応するパッチです. r954 に適用済みです. 以下詳細. ○ 不具合内容 /var/run/l7vs ディレクトリが無い状態で l7vsd を起動しようとすると ログファイルに VSD40130003 bind: addr=97.114.47.114 port=12150 No such file or directory um02 0x2ad8506b1eb0 config.c:157 と表示される. ○ 原因 UNIX ドメインソケットなので sun_path を表示すべきところを,sin_addr と sin_port を表示していた. ○ 対処 sun_path の内容を記録するように変更. 以下,出力例. VSD40130003 cannot create socket file "/var/run/l7vs/l7vs": No such file or directory um02 0x2b6e08325eb0 config.c:157 上記パッチを添付します. ---------------------------------------------------------------- Shinya TAKEBAYASHI E-mail : makoto @ kanon-net.jp GPG ID : FFD20D1F GPG FP : 7B5B E0FC B785 7457 683C 47D6 5564 DDDD FFD2 0D1F ---------------------------------------------------------------- -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: config.c.patch 型: application/octet-stream サイズ: 1019 バイト 説明: 無し URL: http://lists.sourceforge.jp/mailman/archives/ultramonkey-l7-develop/attachments/20081208/54e0c5bc/attachment-0001.obj From kondo.hideaki @ oss.ntt.co.jp Mon Dec 8 17:00:48 2008 From: kondo.hideaki @ oss.ntt.co.jp (Hideaki Kondo) Date: Mon, 08 Dec 2008 17:00:48 +0900 Subject: [Ultramonkey-l7-develop 223] Re: =?iso-2022-jp?b?VU0tTDcgGyRCJSIlLyU7JTklbSUwPVBOTz1oTX0bKEI=?= =?iso-2022-jp?b?GyRCREkyQyRLJEQkJCRGGyhC?= In-Reply-To: <20081208091459.D97B.KONDO.HIDEAKI@oss.ntt.co.jp> References: <20081208091459.D97B.KONDO.HIDEAKI@oss.ntt.co.jp> Message-ID: <20081208163732.D984.KONDO.HIDEAKI@oss.ntt.co.jp> UM-L7開発者各位 近藤です。 お疲れ様です。 先のメールに関連して一点補足です。 > /*-------- INFO LOG (Access Log) --------*/ > char addr_str_tmp[ADDR_STR_LEN] = {0}; > memcpy(addr_str_tmp, inet_ntoa(conn->caddr.sin_addr), strlen(inet_ntoa(conn->caddr.sin_addr))+1); > LOGGER_PUT_LOG_INFO(LOG_CAT_L7VSD_NETWORK,342, > "[[AccessLog] (SRC)%s:%d --> (DST)%s:%d ]", > addr_str_tmp, > ntohs(conn->caddr.sin_port), > inet_ntoa(conn->dest->addr.sin_addr), > ntohs(conn->dest->addr.sin_port)); > /*------ INFO LOG END (Access Log) ------*/ アクセスログ出力に処理については、上記の通りコーディング しておりますが、先に触れましたinet_ntoa()関数の仕様を考えると、 memcpy()の引数でわざわざstrlen()を呼び出す必要はないですね。 memcpy時にアドレス例外発生を懸念してstrlen()を呼び出して 文字列数を得るようにしておりましたが、静的に割り当てられている メモリ領域に変換後のIPアドレスは生成されることから、以下のように strlen()+1は使わずにADDR_STR_LEN(=16)を埋め込みで良いですね。 memcpy(addr_str_tmp, inet_ntoa(conn->caddr.sin_addr), ADDR_STR_LEN); INFOログレベルチェックを入れるかどうかは、皆さんのご意見等を待つ として、少しでも処理を軽くするために呼び出し関数は減らしたいですので 特に異論等なければ、上記のように修正させて頂きたいと思います。 念のため、ざっと動作確認してみましたが、特に問題等は発生しておりません。 以上よろしくお願い致します。 On Mon, 08 Dec 2008 10:07:11 +0900 Hideaki Kondo wrote: > > 竹林さま、各位 > > 近藤です。 > お疲れ様です。 > > ご確認およびご指摘有難うございます。 > インラインにて回答等させていただきます。 > > On Sun, 07 Dec 2008 22:31:50 +0900 > makoto @ kanon-net.jp wrote: > > > 近藤 さま > > > > > > 竹林です. > > お疲れ様です. > > > > > > 以下の点が気になります. > > > > ○ コーディング面 > > > > ・inet_ntoa が失敗した場合のエラー判定がない > > ★ > inet_ntoa()については、manページにも少し書かれてますが、 > IPアドレス文字列に変換後のデータは、毎回動的に確保 > されるメモリ領域ではなく、予め静的に割り当てられた > メモリ領域に格納されます。 > 従って、inet_ntoa()を呼び出すたびに戻ってくるポインタ( > アドレス)は毎回同じ値になり、エラーリターン値(0など)が > 存在しないので、エラー判定は不要と考えております。 > > ちなみに、既存ソースコード上では、l7vs_service.h, > l7vs_lsock.h, l7vs_dest.h, l7vs_conn.hにおいて > inet_ntoa()が多数使われておりますが、やはりエラー判定処理 > は行なっていない状況です。 > > 以下のサイトの情報も参考になると思います。 > http://www.geekpage.jp/programming/winsock/tips-inet_ntoa.php > > > > > ○ パフォーマンス面 > > > > ・ログレベルの如何に関わらず memcpy している > > ★ > これについては、inet_ntoa()を使用する上での仕様上の都合とは > 言え、(char配列宣言等を含めて)やはり回避したいところとして > 悩みましたが、ひとまずDEBUGレベルのログメッセージ以外は、 > ログレベル判定をしない方針を踏襲・尊重してコーディングして > おります。 > > 皆さまのご意見等を伺い、アクセスログ出力に関しては特例として > パフォーマンスを優先するため、DEBUGログと同様にログレベルを > チェックした上で、アクセスログ出力に必要な諸々の処理をする方式 > に変更しても良いと考えております。 > > 皆さまのご意見等いただけますと有り難いです。 > > 以上よろしくお願い致します。 > > > > > > > 以上の点を再考していただけますか. > > > > > > ---------------------------------------------------------------- > > Shinya TAKEBAYASHI > > > > E-mail(private): makoto @ kanon-net.jp > > GPG ID : FFD20D1F > > GPG FP : 7B5B E0FC B785 7457 683C 47D6 5564 DDDD FFD2 0D1F > > ---------------------------------------------------------------- > > -- > Hideaki Kondo > > _______________________________________________ > Ultramonkey-l7-develop mailing list > Ultramonkey-l7-develop @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop ================================================= NTT 研究企画部門 OSSセンタ 技術ユニット 高信頼G 近藤 秀明 (Hideaki Kondo) TEL: 03-5860-5135, 5084(直通) FAX: 03-5463-5490 E-mail:kondo.hideaki @ oss.ntt.co.jp ================================================= From takebayashi.shinya @ oss.ntt.co.jp Mon Dec 8 18:20:42 2008 From: takebayashi.shinya @ oss.ntt.co.jp (Shinya TAKEBAYASHI) Date: Mon, 08 Dec 2008 18:20:42 +0900 Subject: [Ultramonkey-l7-develop 224] =?iso-2022-jp?b?bDd2c2FkbSAbJEIkThsoQiBtYW4gGyRCJVohPCU4PXEbKEI=?= =?iso-2022-jp?b?GyRCJC0kXiQ3JD8bKEI=?= Message-ID: 各位 竹林です. お疲れ様です. l7vsadm の man ページ書きました. r958 でコミットしています. man -l l7vsadm.8 で表示できますので,内容の確認をお願いします. ----------------------------------------------------------- Shinya TAKEBAYASHI E-mail: takebayashi.shinya @ oss.ntt.co.jp GPG ID: 395EFCE8 GPG FP: 58B2 B5D0 A692 1BD8 328B E31E E027 AC35 395E FCE8 ----------------------------------------------------------- From takebayashi.shinya @ oss.ntt.co.jp Mon Dec 8 18:54:52 2008 From: takebayashi.shinya @ oss.ntt.co.jp (Shinya TAKEBAYASHI) Date: Mon, 08 Dec 2008 18:54:52 +0900 Subject: [Ultramonkey-l7-develop 225] Re: =?iso-2022-jp?b?VU0tTDcgGyRCJSIlLyU7JTklbSUwPVBOTz1oTX0bKEI=?= =?iso-2022-jp?b?GyRCREkyQyRLJEQkJCRGGyhC?= In-Reply-To: <20081208163732.D984.KONDO.HIDEAKI@oss.ntt.co.jp> References: <20081208091459.D97B.KONDO.HIDEAKI@oss.ntt.co.jp> <20081208163732.D984.KONDO.HIDEAKI@oss.ntt.co.jp> Message-ID: 近藤 様 竹林です. お疲れ様です. > メモリ領域に変換後のIPアドレスは生成されることから、以下のように > strlen()+1は使わずにADDR_STR_LEN(=16)を埋め込みで良いですね。 glibc 内の inet_ntoa() の実装ではバッファサイズは 18 バイトになりますが, この点の考慮は要らないでしょうか. xxx.xxx.xxx.xxx なので,16 バイトあれば充分と言えば充分ですが・・・ -- inet_ntoa.c static char local_buf[18]; ・・・ snip ・・・ __snprintf (buffer, 18, "%d.%d.%d.%d", bytes[0], bytes[1], bytes[2], bytes[3]); ・・・何故 inet_ntoa のバッファサイズが 18 バイトなんでしょうね. ----------------------------------------------------------- Shinya TAKEBAYASHI E-mail: takebayashi.shinya @ oss.ntt.co.jp GPG ID: 395EFCE8 GPG FP: 58B2 B5D0 A692 1BD8 328B E31E E027 AC35 395E FCE8 ----------------------------------------------------------- Hideaki Kondo wrote in message <20081208163732.D984.KONDO.HIDEAKI @ oss.ntt.co.jp > *** Subject: [Ultramonkey-l7-develop 223] Re: UM-L7 アクセスログ出力処理追加につ いて *** Date: 2008/12/08 17:00:48 > > UM-L7開発者各位 > > 近藤です。 > お疲れ様です。 > > 先のメールに関連して一点補足です。 > > > /*-------- INFO LOG (Access Log) --------*/ > > char addr_str_tmp[ADDR_STR_LEN] = {0}; > > memcpy(addr_str_tmp, inet_ntoa(conn->caddr.sin_addr), strlen(inet_ntoa(conn- >caddr.sin_addr))+1); > > LOGGER_PUT_LOG_INFO(LOG_CAT_L7VSD_NETWORK,342, > > "[[AccessLog] (SRC)%s:%d --> (DST)%s:%d ]", > > addr_str_tmp, > > ntohs(conn->caddr.sin_port), > > inet_ntoa(conn->dest->addr.sin_addr), > > ntohs(conn->dest->addr.sin_port)); > > /*------ INFO LOG END (Access Log) ------*/ > > > アクセスログ出力に処理については、上記の通りコーディング > しておりますが、先に触れましたinet_ntoa()関数の仕様を考えると、 > memcpy()の引数でわざわざstrlen()を呼び出す必要はないですね。 > > memcpy時にアドレス例外発生を懸念してstrlen()を呼び出して > 文字列数を得るようにしておりましたが、静的に割り当てられている > メモリ領域に変換後のIPアドレスは生成されることから、以下のように > strlen()+1は使わずにADDR_STR_LEN(=16)を埋め込みで良いですね。 > > memcpy(addr_str_tmp, inet_ntoa(conn->caddr.sin_addr), ADDR_STR_LEN); > > INFOログレベルチェックを入れるかどうかは、皆さんのご意見等を待つ > として、少しでも処理を軽くするために呼び出し関数は減らしたいですので > 特に異論等なければ、上記のように修正させて頂きたいと思います。 > > 念のため、ざっと動作確認してみましたが、特に問題等は発生しておりません。 > > 以上よろしくお願い致します。 > From takebayashi.shinya @ oss.ntt.co.jp Mon Dec 8 19:08:50 2008 From: takebayashi.shinya @ oss.ntt.co.jp (Shinya TAKEBAYASHI) Date: Mon, 08 Dec 2008 19:08:50 +0900 Subject: [Ultramonkey-l7-develop 226] Re: =?iso-2022-jp?b?bDd2c2FkbSAbJEIkThsoQiBtYW4gGyRCJVohPCU4GyhC?= =?iso-2022-jp?b?GyRCPXEkLSReJDckPxsoQg==?= In-Reply-To: References: Message-ID: たけばやしです. お疲れ様です. ついでに l7vsd の man も書いてしまいました. 後で Makefile を付け足します. ----------------------------------------------------------- Shinya TAKEBAYASHI E-mail: takebayashi.shinya @ oss.ntt.co.jp GPG ID: 395EFCE8 GPG FP: 58B2 B5D0 A692 1BD8 328B E31E E027 AC35 395E FCE8 ----------------------------------------------------------- Shinya TAKEBAYASHI wrote in message < JH200812081820422.873634359 @ oss.ntt.co.jp> *** Subject: [Ultramonkey-l7-develop 224] l7vsadm の man ページ書きました *** Date: 2008/12/08 18:20:42 > 各位 > > > 竹林です. > お疲れ様です. > > l7vsadm の man ページ書きました. > > r958 でコミットしています. > > man -l l7vsadm.8 で表示できますので,内容の確認をお願いします. > > ----------------------------------------------------------- > Shinya TAKEBAYASHI > > E-mail: takebayashi.shinya @ oss.ntt.co.jp > GPG ID: 395EFCE8 > GPG FP: 58B2 B5D0 A692 1BD8 328B E31E E027 AC35 395E FCE8 > ----------------------------------------------------------- > > _______________________________________________ > Ultramonkey-l7-develop mailing list > Ultramonkey-l7-develop @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop