From 6d725e97e3729baca0c9797a71a424f6ca313416 Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Tue, 15 Jan 2013 08:53:12 +0900 Subject: [PATCH] net: simplify ListenMulticastUDP R=rsc, iant, dave CC=golang-dev https://golang.org/cl/6999053 --- src/pkg/net/udpsock_posix.go | 49 +++++++++--------------------------- 1 file changed, 12 insertions(+), 37 deletions(-) diff --git a/src/pkg/net/udpsock_posix.go b/src/pkg/net/udpsock_posix.go index b7de678f92..385cd902eb 100644 --- a/src/pkg/net/udpsock_posix.go +++ b/src/pkg/net/udpsock_posix.go @@ -211,25 +211,22 @@ func ListenMulticastUDP(net string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, e return nil, UnknownNetworkError(net) } if gaddr == nil || gaddr.IP == nil { - return nil, &OpError{"listenmulticast", net, nil, errMissingAddress} + return nil, &OpError{"listen", net, nil, errMissingAddress} } fd, err := internetSocket(net, gaddr.toAddr(), nil, noDeadline, syscall.SOCK_DGRAM, 0, "listen", sockaddrToUDP) if err != nil { return nil, err } c := newUDPConn(fd) - ip4 := gaddr.IP.To4() - if ip4 != nil { - err := listenIPv4MulticastUDP(c, ifi, ip4) - if err != nil { + if ip4 := gaddr.IP.To4(); ip4 != nil { + if err := listenIPv4MulticastUDP(c, ifi, ip4); err != nil { c.Close() - return nil, err + return nil, &OpError{"listen", net, &IPAddr{IP: ip4}, err} } } else { - err := listenIPv6MulticastUDP(c, ifi, gaddr.IP) - if err != nil { + if err := listenIPv6MulticastUDP(c, ifi, gaddr.IP); err != nil { c.Close() - return nil, err + return nil, &OpError{"listen", net, &IPAddr{IP: gaddr.IP}, err} } } return c, nil @@ -237,17 +234,14 @@ func ListenMulticastUDP(net string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, e func listenIPv4MulticastUDP(c *UDPConn, ifi *Interface, ip IP) error { if ifi != nil { - err := setIPv4MulticastInterface(c.fd, ifi) - if err != nil { + if err := setIPv4MulticastInterface(c.fd, ifi); err != nil { return err } } - err := setIPv4MulticastLoopback(c.fd, false) - if err != nil { + if err := setIPv4MulticastLoopback(c.fd, false); err != nil { return err } - err = joinIPv4GroupUDP(c, ifi, ip) - if err != nil { + if err := joinIPv4Group(c.fd, ifi, ip); err != nil { return err } return nil @@ -255,34 +249,15 @@ func listenIPv4MulticastUDP(c *UDPConn, ifi *Interface, ip IP) error { func listenIPv6MulticastUDP(c *UDPConn, ifi *Interface, ip IP) error { if ifi != nil { - err := setIPv6MulticastInterface(c.fd, ifi) - if err != nil { + if err := setIPv6MulticastInterface(c.fd, ifi); err != nil { return err } } - err := setIPv6MulticastLoopback(c.fd, false) - if err != nil { + if err := setIPv6MulticastLoopback(c.fd, false); err != nil { return err } - err = joinIPv6GroupUDP(c, ifi, ip) - if err != nil { + if err := joinIPv6Group(c.fd, ifi, ip); err != nil { return err } return nil } - -func joinIPv4GroupUDP(c *UDPConn, ifi *Interface, ip IP) error { - err := joinIPv4Group(c.fd, ifi, ip) - if err != nil { - return &OpError{"joinipv4group", c.fd.net, &IPAddr{IP: ip}, err} - } - return nil -} - -func joinIPv6GroupUDP(c *UDPConn, ifi *Interface, ip IP) error { - err := joinIPv6Group(c.fd, ifi, ip) - if err != nil { - return &OpError{"joinipv6group", c.fd.net, &IPAddr{IP: ip}, err} - } - return nil -} -- 2.48.1