ruby-trunk-changes r33502 - r33508

Resolv::DNSタイムアウト値が設定可能になっています。また子プロセスを起動する時にデフォルトで標準入出力、標準エラー出力以外のファイルディスクリプタは閉じるようにしています。

ngoto:r33502 2011-10-22 02:34:58 +0900

INFINITY や NAN が利用できない環境で char 型の配列に Infinity や NaN を表現するバイト列を用意して使うようになっていますが、そのままだとアライメントのエラーが発生する場合があるので、float と char の共用体を定義して利用するようにしています。 [ruby-dev:44657] [Bug #5469]

svn:r33503 2011-10-22 02:35:05 +0900

version.h の日付更新。

akr:r33504 2011-10-22 17:46:12 +0900

Resolv::DNS の名前解決のタイムアウト値を timeout= メソッドで設定できるようにメソッドを追加しています。 [ruby-core:38533] [Feature #5100]

akr:r33505 2011-10-22 17:47:13 +0900

r33504 の 例外クラス名の typo を修正。

akr:r33506 2011-10-22 17:50:50 +0900

NEWS ファイルに Resolv::DNS#timeouts= メソッドと Resolv::DNS::Config#timeouts= メソッドの追加について記述しています。

akr:r33507 2011-10-22 18:58:15 +0900

system, exec や Process.spawn で標準入力、標準出力、標準エラー出力以外のファイルディスクリプタはデフォルトで閉じられるようにしています。このためまずこれらのメソッドのオプション :close_others のデフォルトを true に変更し、ファイルディスクリプタを生成している部分で常に FD_CLOEXEC をセットするようにしています。ファイルディスクリプタを子プロセスに継承したい場合は明示的に { io => io } のように継承する IO オブジェクトの指定をオプションに含めるようにします。 [ruby-core:38140] [Feature #5041]

akr:r33508 2011-10-22 20:35:58 +0900

OpenSSL::SSL::SSLSocket のテストで start_server でテスト用のサーバを起動してその同じサーバの Proc オブジェクトで複数の長さのメッセージを受信するチェックをしていて、チェックの手続きが走る前に次の接続のループで num_written が書き換えられてしまうと失敗する可能性があったので、データのサイズのループ毎に別々の Proc オブジェクトを生成してサーバを起動するようにしています。