Project

General

Profile

Actions

Bug #11179

closed

Inconsistent Addrinfo parsing a port number

Added by ibenza (Shin'ya Ueoka) almost 9 years ago. Updated almost 9 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-05-25 trunk 50637) [x86_64-linux]
[ruby-core:69353]

Description

In the case of the following code, ip_port returns 34464 because the number 99999 is cast as short int.
Is the result expected?

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.

require 'socket'
Addrinfo.tcp('', -1).ip_port     # => Servname not supported for ai_socktype (SocketError)

Updated by ibenza (Shin'ya Ueoka) almost 9 years ago

  • Subject changed from Addrinfo parsing a port number to Inconsistent Addrinfo parsing a port number

Updated by akr (Akira Tanaka) almost 9 years ago

  • 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0