Issue #11179 has been reported by Shin'ya Ueoka.

----------------------------------------
Bug #11179: Addrinfo parsing a port number
https://bugs.ruby-lang.org/issues/11179

* Author: Shin'ya Ueoka
* Status: Open
* 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/