From 2019ce617fdd488df28173abc260bb6974c09bf0 Mon Sep 17 00:00:00 2001 From: Mark Rada Date: Fri, 2 Dec 2016 03:03:05 -0500 Subject: [PATCH] Support literal IPv6 addresses --- lib/github/statsd.rb | 2 +- spec/statsd_spec.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/github/statsd.rb b/lib/github/statsd.rb index 56730e8..2e96c17 100644 --- a/lib/github/statsd.rb +++ b/lib/github/statsd.rb @@ -19,7 +19,7 @@ class UDPClient attr_reader :sock def initialize(address, port = nil) - address, port = address.split(':') if address.include?(':') + address, port = address.split(':') if address.count(':') == 1 addrinfo = Addrinfo.ip(address) @sock = UDPSocket.new(addrinfo.pfamily) diff --git a/spec/statsd_spec.rb b/spec/statsd_spec.rb index 14d0b21..9cf7b7d 100644 --- a/spec/statsd_spec.rb +++ b/spec/statsd_spec.rb @@ -21,6 +21,17 @@ class << @statsd statsd = GitHub::Statsd.new(FakeUDPSocket) statsd.client_class.must_equal FakeUDPSocket end + + it "should allow literal IPv6 addresses" do + [ + '0000:0000:0000:0000:0000:0000:0000:0001', + '::1' + ].each do |ipv6_addr| + statsd = GitHub::Statsd.new + statsd.add_shard ipv6_addr, 8125 + statsd.shards.first.sock.addr[0].must_equal 'AF_INET6' + end + end end describe "#increment" do