From 0d03b4dd26f8a13df2d0458d5fd0cc9e1ce42848 Mon Sep 17 00:00:00 2001 From: Viktor Villainov Date: Thu, 4 Apr 2019 10:35:40 -0400 Subject: [PATCH] Add IPv6 support: Use net.SplitHostPort --- irc.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/irc.go b/irc.go index 9afb00b..de8f6a5 100644 --- a/irc.go +++ b/irc.go @@ -428,18 +428,16 @@ func (irc *Connection) Connect(server string) error { if len(irc.Server) == 0 { return errors.New("empty 'server'") } - if !strings.HasPrefix("[", irc.Server) && strings.Count(irc.Server, ":") != 1 { - return errors.New("wrong number of ':' in address") - } if strings.Index(irc.Server, ":") == 0 { return errors.New("hostname is missing") } if strings.Index(irc.Server, ":") == len(irc.Server)-1 { return errors.New("port missing") } - // check for valid range - substrings := strings.Split(irc.Server, ":") - ports := substrings[len(substrings) - 1] + _, ports, err := net.SplitHostPort(irc.Server) + if err != nil { + return errors.New("wrong address string") + } port, err := strconv.Atoi(ports) if err != nil { return errors.New("extracting port failed")