* ext/socket/lib/socket.rb (family_addrinfo): don't require protocol

equality.  For example, protocol 0 and IPPROTO_TCP is not problem
  for TCP.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2012-01-09 11:18:00 +00:00
Родитель 268d1a2244
Коммит bb1115a2d6
2 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Mon Jan 9 20:14:13 2012 Tanaka Akira <akr@fsij.org>
* ext/socket/lib/socket.rb (family_addrinfo): don't require protocol
equality. For example, protocol 0 and IPPROTO_TCP is not problem
for TCP.
Mon Jan 9 20:08:52 2012 Tanaka Akira <akr@fsij.org>
* ext/socket/lib/socket.rb (family_addrinfo): return the given

Просмотреть файл

@ -17,7 +17,10 @@ class Addrinfo
elsif Addrinfo === args.first
raise ArgumentError, "too many arguments" if args.length != 1
addrinfo = args.first
raise ArgumentError, "Addrinfo type mismatch" if (self.pfamily != addrinfo.pfamily) || (self.socktype != addrinfo.socktype) || (self.protocol != addrinfo.protocol)
if (self.pfamily != addrinfo.pfamily) ||
(self.socktype != addrinfo.socktype)
raise ArgumentError, "Addrinfo type mismatch"
end
addrinfo
elsif self.ip?
raise ArgumentError, "IP address needs host and port but #{args.length} arguments given" if args.length != 2