Hi - I can't seem to get IPv6 working.
Something changed when I updated my gems (not ruby) and now the URI Parsing isn't working with the bracket notation
If I do
Net::HTTP.new('::', 8080).start
=> #<Net::HTTP :::8080 open=true>
The socket is opened and the connection works to an XMLRPC server
If instead I do
XMLRPC::Client.new('[::]', '/RPC2', 8080).call('system.listMethods')
home/xxx/.rbenv/versions/3.1.0/lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': Failed to open TCP connection to [::]:8080 (getaddrinfo: Name or service not known) (SocketError)
/home/xxx/.rbenv/versions/3.1.0/lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': getaddrinfo: Name or service not known (SocketError)
I get this exception, which means the [::] IPv6 ip is being interpreted as a DNS hostname (the brackets must be trimmed)
If I monkey-patch XMLRPC::Client.net_http like this to trim the brackets manually
module XMLRPC
class Client
def net_http(host, port, proxy_host, proxy_port)
Net::HTTP.new host.tr('[]', ''), port, proxy_host, proxy_port
end
end
end
Then the Net::HTTP instance is created correctly and the connection can be opened
XMLRPC::Client.new('[::]', '/path', 8080)
=>
#<XMLRPC::Client:0x00007fd9e1098a68
@auth=nil,
@cookie=nil,
@create=nil,
@host="[::]",
@http=#<Net::HTTP [::]:8080 open=false>,
@http_header_extra=nil,
@http_last_response=nil,
@parser=nil,
@password=nil,
@path="/path",
@port=8080,
@proxy_host=nil,
@proxy_port=nil,
@timeout=30,
@use_ssl=false,
@user=nil>
But then when I try to call the client
XMLRPC::Client.new('[::]', '/path', 8080).call('system.listMethods')
/home/xxxx/.rbenv/versions/3.1.0/lib/ruby/3.1.0/uri/rfc3986_parser.rb:67:in `split': bad URI(is not URI?): "http://::/path" (URI::InvalidURIError)
I get an Invalid URI Error.
I can't seem to find the call point where a URI is built in call yet. Will try to monkey patch that to see if it works temporarily.
I have a feeling this is related to the age old bug here https://bugs.ruby-lang.org/issues/3788
Hi - I can't seem to get IPv6 working.
Something changed when I updated my gems (not ruby) and now the URI Parsing isn't working with the bracket notation
If I do
The socket is opened and the connection works to an XMLRPC server
If instead I do
I get this exception, which means the
[::]IPv6 ip is being interpreted as a DNS hostname (the brackets must be trimmed)If I monkey-patch
XMLRPC::Client.net_httplike this to trim the brackets manuallyThen the Net::HTTP instance is created correctly and the connection can be opened
But then when I try to call the client
I get an Invalid URI Error.
I can't seem to find the call point where a URI is built in call yet. Will try to monkey patch that to see if it works temporarily.
I have a feeling this is related to the age old bug here https://bugs.ruby-lang.org/issues/3788