From: "Toshihiko SHIMOKAWA / 下川俊彦" Date: 1999-07-16T15:32:37+09:00 Subject: [ruby-dev:7342] Re: resolver を呼ばない UDPsocket#recvfrom From: nobu.nakada@nifty.ne.jp Subject: [ruby-dev:7324] Re: resolver を呼ばない UDPsocket#recvfrom Date: Fri, 16 Jul 1999 00:43:07 +0900 > あるいは、recvfrom あたりの返す host を、文字列の代わりに IP address > を表すオブジェクトにするとか。で、String として評価されるときに(i.e. > to_str とか to_s の中で)はじめて resolve する、っていうのを思いついたん > ですが。 個人的には、そのような仕様だと嬉しいです。しかし、そのような仕様の方が嬉 しいケースは非常に稀なことも確かだと思います。なにも考えなくても、逆引き した結果であるホスト名が帰ってくるのは、やはり便利なことが多いように思い ます。 デフォルトの挙動としては、現在のように逆引きした結果が帰ってくる方が良い かと思っています。 昨日作った patch ですが、recvfrom_noresolv って名前は、センス悪かったな と思っています。recvfrom_no_reverse_lookup とかのほうが良いかもです。ど うせ、ほとんど使われることはないメソッドだと思いますので、長くてタイプし にくくても問題無いと考えています。 API 的に別の案を考えてみました。ただ、ちと難しそうだったので実装はしてみ ていません。 各ソケットインスタンスに、自動的に逆引きによるホスト名検索を行うかどうか という属性を持たせます。デフォルトは検索を行う、にしておきます。あとはそ の属性を変更できるメソッドを用意します。 自動の逆引きを止めることが出来るようになると、ruby で高速な www サーバを 作るとか言うときに有利になるかもしれません。たぶん、その前にインタプリタ の速度とかが問題になると思うので、嘘だとは思います:-) 逆引きを行うかどうかと言う属性(状態)は、各ソケットインスタンスではなく、 インタプリタ全体で一つ持ってれば充分かもしれません。 とは思ってみたのですが、コードにするのは難しそうなので、言うだけでごめん なさい。 -- としちゃん // toshi@tea.forus.or.jp, toshi@csce.kyushu-u.ac.jp