net-mgmt/rubygem-riemann-client: fix ipv6
Sponsored by: SkunkWerks. GmbH
This commit is contained in:
parent
5be4bb4698
commit
41b234ef18
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=518407
2 changed files with 49 additions and 0 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
PORTNAME= riemann-client
|
||||
DISTVERSION= 0.2.6
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= net-mgmt rubygems
|
||||
MASTER_SITES= RG
|
||||
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
--- lib/riemann/client/tcp_socket.rb.orig 2019-11-25 11:01:31 UTC
|
||||
+++ lib/riemann/client/tcp_socket.rb
|
||||
@@ -107,13 +107,14 @@ module Riemann
|
||||
# Using the options from the initializer, a new ::Socket is created that
|
||||
# is:
|
||||
#
|
||||
- # TCP, IPv4 only, autoclosing on exit, nagle's algorithm is disabled and has
|
||||
+ # TCP, autoclosing on exit, nagle's algorithm is disabled and has
|
||||
# TCP Keepalive options set if keepalive is supported.
|
||||
#
|
||||
- # Returns a new ::Socket instance
|
||||
- def blank_socket
|
||||
- sock = ::Socket.new(::Socket::AF_INET, ::Socket::SOCK_STREAM, 0)
|
||||
+ # Returns a new ::Socket instance for
|
||||
|
||||
+ def socket_factory(type)
|
||||
+ sock = ::Socket.new(type, ::Socket::SOCK_STREAM, 0)
|
||||
+
|
||||
# close file descriptors if we exec
|
||||
if Fcntl.constants.include?(:F_SETFD) && Fcntl.constants.include?(:FD_CLOEXEC)
|
||||
sock.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
|
||||
@@ -167,13 +168,14 @@ module Riemann
|
||||
# Calculate our timeout deadline
|
||||
deadline = Time.now.to_f + connect_timeout
|
||||
|
||||
- # Lookup destination address, we only want IPv4 , TCP
|
||||
- addrs = ::Socket.getaddrinfo(host, port, ::Socket::AF_INET, ::Socket::SOCK_STREAM )
|
||||
+ # Lookup destination address, we only want TCP.
|
||||
+ addrs = ::Socket.getaddrinfo(host, port, nil, ::Socket::SOCK_STREAM )
|
||||
errors = []
|
||||
conn_error = lambda { raise errors.first }
|
||||
sock = nil
|
||||
|
||||
- addrs.find( conn_error ) do |addr|
|
||||
+ # Sort it so we get AF_INET, IPv4
|
||||
+ addrs.sort.find( conn_error ) do |addr|
|
||||
sock = connect_or_error( addr, deadline, errors )
|
||||
end
|
||||
return sock
|
||||
@@ -210,7 +212,7 @@ module Riemann
|
||||
# connection was possible.
|
||||
def connect_nonblock( addr, timeout )
|
||||
sockaddr = ::Socket.pack_sockaddr_in(addr[1], addr[3])
|
||||
- sock = blank_socket()
|
||||
+ sock = self.socket_factory( addr[4] )
|
||||
sock.connect_nonblock( sockaddr )
|
||||
return sock
|
||||
rescue Errno::EINPROGRESS
|
Loading…
Reference in a new issue