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