Actions
Bug #21512
openSocket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError)
Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 3.5.0dev (2025-07-13T04:37:15Z master f03cc0b514) +PRISM [x86_64-linux]
Description
The following code is expected to open a socket bound to the local IPv4 interface, but raises an SocketError.
require 'socket'
Socket.tcp_with_fast_fallback('localhost', 8080, '127.0.0.1')
Expected behavior: Returns a Socket
object
Actuai behavior: Causes a SocketError (unknown socket domain: ipv4)
I believe this is because Socket.tcp_with_fast_fallback is calling Addrinfo.getaddrinfo with :ipv4
/ :ipv6
as its third argument, instead of Socket::AF_INET
/ Socket::AF_INET6
.
https://github.com/ruby/ruby/blob/b2a7b7699261d2a4ef8a9d5d38d3fb9dc99c8253/ext/socket/lib/socket.rb#L707
Updated by osyoyu (Daisuke Aritomo) about 8 hours ago
I have opened a pull request: https://github.com/ruby/ruby/pull/13878
This bug is around from Ruby 3.4 when HEv2 was introduced.
Actions
Like0
Like0