diff --git a/irc.go b/irc.go index b79fca7..de8f6a5 100644 --- a/irc.go +++ b/irc.go @@ -428,17 +428,16 @@ func (irc *Connection) Connect(server string) error { if len(irc.Server) == 0 { return errors.New("empty 'server'") } - if 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 - ports := strings.Split(irc.Server, ":")[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")