From 8dc27ca9a721fa6c2d77160f3ca7331018b12dc1 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Sat, 19 Jun 2021 16:26:45 +0200 Subject: [PATCH] avoid using net.ResolveUDPAddr() --- clientconnudpl.go | 9 +++------ serverudpl.go | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/clientconnudpl.go b/clientconnudpl.go index e83b4ea8..78f646bb 100644 --- a/clientconnudpl.go +++ b/clientconnudpl.go @@ -58,15 +58,12 @@ func newClientConnUDPListenerPair(cc *ClientConn) (*clientConnUDPListener, *clie func newClientConnUDPListener(cc *ClientConn, multicast bool, address string) (*clientConnUDPListener, error) { var pc *net.UDPConn if multicast { - addr, err := net.ResolveUDPAddr("udp4", address) + host, port, err := net.SplitHostPort(address) if err != nil { return nil, err } - tmp, err := cc.c.ListenPacket("udp4", (&net.UDPAddr{ - IP: net.ParseIP("224.0.0.0"), - Port: addr.Port, - }).String()) + tmp, err := cc.c.ListenPacket("udp4", "224.0.0.0:"+port) if err != nil { return nil, err } @@ -84,7 +81,7 @@ func newClientConnUDPListener(cc *ClientConn, multicast bool, address string) (* } for _, intf := range intfs { - err := p.JoinGroup(&intf, &net.UDPAddr{IP: addr.IP}) + err := p.JoinGroup(&intf, &net.UDPAddr{IP: net.ParseIP(host)}) if err != nil { return nil, err } diff --git a/serverudpl.go b/serverudpl.go index 92fa892e..82e2815d 100644 --- a/serverudpl.go +++ b/serverudpl.go @@ -91,15 +91,12 @@ func newServerUDPListener( streamType StreamType) (*serverUDPListener, error) { var pc *net.UDPConn if multicast { - addr, err := net.ResolveUDPAddr("udp4", address) + host, port, err := net.SplitHostPort(address) if err != nil { return nil, err } - tmp, err := s.ListenPacket("udp4", (&net.UDPAddr{ - IP: net.ParseIP("224.0.0.0"), - Port: addr.Port, - }).String()) + tmp, err := s.ListenPacket("udp4", "224.0.0.0:"+port) if err != nil { return nil, err } @@ -117,7 +114,7 @@ func newServerUDPListener( } for _, intf := range intfs { - err := p.JoinGroup(&intf, &net.UDPAddr{IP: addr.IP}) + err := p.JoinGroup(&intf, &net.UDPAddr{IP: net.ParseIP(host)}) if err != nil { return nil, err }