[#37679] [FEATURE:trunk] EncDet again — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

23 messages 2009/01/03

[#37748] $LOAD_PATHとバージョンの運用の関係 — akira yamada / やまだあきら <akira@...>

1.9系でのバージョンの運用と$LOAD_PATHの値について質問です。

12 messages 2009/01/09
[#37758] Re: $LOAD_PATHとバージョンの運用の関係 — "NARUSE, Yui" <naruse@...> 2009/01/11

成瀬です。

[ruby-dev:37708] Re: [Bug:trunk] Socket.getaddrinfo("www.ruby-lang.org", 80) returns only UDP information

From: Tanaka Akira <akr@...>
Date: 2009-01-06 09:38:44 UTC
List: ruby-dev #37708
In article <E1LK75E-0000Rg-RR@x61.netlab.jp>,
  Yukihiro Matsumoto <matz@ruby-lang.org> writes:

>   * 環境によって異なる
>   * 誰かが直してくださった
>
> のいずれかでしょうか。最近socket.cに手を入れていただいている
> のは田中さんなのでみずから直してくださったのでしょうか。私と

はい、r21278 で直しました。

r21278 | akr | 2009-01-02 23:36:39 +0900 (Fri, 02 Jan 2009) | 7 lines

* ext/socket/socket.c: don't apply socktype hack [ruby-core:184] for
  sock_s_getaddrinfo.
  (sock_getaddrinfo): add socktype_hack argument.
  (sock_addrinfo): call sock_getaddrinfo with socktype_hack.
  (sock_s_getaddrinfo): call sock_getaddrinfo without socktype_hack.
  [ruby-dev:37674]

という log でも触れてありますが [ruby-core:184] の細工の影響
範囲を Socket.getaddrinfo にまで広げてしまったのが失敗という
ことですかね。

この細工は port が整数だったら socktype が無指定だと (環境に
よって) Socket.sockaddr_in でエラーになるのを SOCK_DGRAM を
指定して防ぐというもので、
エラーになるのは

  % grep 514 /etc/services 
  shell           514/tcp
  syslog          514/udp

みたいなあいまいなケースがあるというもっともな理由があり、
エラーを防ぐのも、Socket.sockaddr_in で port がすでに整数だっ
たらけっきょく問題にはならないというもっともな理由があるので
すが、
Socket.getaddrinfo を呼び出した時には余計な御世話というわけ
です。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread