
Issue #20935 has been updated by mame (Yusuke Endoh). @matz approved the new API, and also wanted a configuration to stop happy eyeballs by an environment variable: `RUBY_TCP_NO_FAST_FALLBACK=1`. ---------------------------------------- Feature #20935: API for Globally Enabling/Disabling Happy Eyeballs Version 2 in the Socket Class https://bugs.ruby-lang.org/issues/20935#change-110972 * Author: shioimm (Misaki Shioi) * Status: Open ---------------------------------------- When introducing Happy Eyeballs Version 2 to `Socket.tcp` (https://bugs.ruby-lang.org/issues/20108), it was pointed out that there should be a way to disable this feature (https://bugs.ruby-lang.org/issues/20108#note-7). To address this, I added `fast_fallback: true or false` keyword argument to both `Socket.tcp` and `TCPSocket.new`. Additionally, I introduced two singleton methods to the `Socket` class: `tcp_fast_fallback=` and `tcp_fast_fallback`. These can be used as follows: ```ruby Socket.tcp(host, port, fast_fallback: true) TCPSocket.new(host, port, fast_fallback: true) # Globally controlling HEv2 Socket.tcp_fast_fallback = true # => true Socket.tcp_fast_fallback # => true ``` I apologize for this after the implementation, but I would like to discuss whether adding these APIs is appropriate. -- https://bugs.ruby-lang.org/