From: akr@... Date: 2015-06-14T09:39:32+00:00 Subject: [ruby-core:69575] [Ruby trunk - Bug #11179] [Third Party's Issue] Inconsistent Addrinfo parsing a port number Issue #11179 has been updated by Akira Tanaka. Status changed from Open to Third Party's Issue The behavior is inherited from getaddrinfo() function in libc. So it is difficult to fix the problem in Ruby. ---------------------------------------- Bug #11179: Inconsistent Addrinfo parsing a port number https://bugs.ruby-lang.org/issues/11179#change-52915 * Author: Shin'ya Ueoka * Status: Third Party's Issue * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0dev (2015-05-25 trunk 50637) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- In the case of the following code, ip_port returns 34464 because the number 99999 is cast as `short int`. Is the result expected? ``` ruby require 'socket' Addrinfo.tcp('', 99999).ip_port # => 34463 ``` Even if the above behavior is correct, ip_port should return 65535 in the following code. But actually, Addrinfo raises an exception because -1 is parsed as service name. This behavior is inconsistent with the above. ``` ruby require 'socket' Addrinfo.tcp('', -1).ip_port # => Servname not supported for ai_socktype (SocketError) ``` -- https://bugs.ruby-lang.org/