]> Cypherpunks repositories - gostls13.git/commitdiff
net: simplify ListenMulticastUDP
authorMikio Hara <mikioh.mikioh@gmail.com>
Mon, 14 Jan 2013 23:53:12 +0000 (08:53 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Mon, 14 Jan 2013 23:53:12 +0000 (08:53 +0900)
R=rsc, iant, dave
CC=golang-dev
https://golang.org/cl/6999053

src/pkg/net/udpsock_posix.go

index b7de678f928c979b58940edb4e598b8a18d5f7f6..385cd902eb800f8358b55c47e93db05beca08e66 100644 (file)
@@ -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
-}