CR updates to go-reuseport + go-sockaddr
Juan Batiz-Benet committed
Jan 19, 2015 at 16:13 UTC
7a3e0cdc757cea7b67d333cf7b995c80e6f071ae
4 files changed
+23
-24
Godeps/Godeps.json
+2
-2
@@ -160,11 +160,11 @@
160
},
161
{
162
"ImportPath": "github.com/jbenet/go-reuseport",
163
- "Rev": "f08ef6913526113c76e12e059ffe1b93319a7a18"
163
+ "Rev": "f2ab96a83e1b33b66478eedd314884755d771933"
164
},
165
{
166
"ImportPath": "github.com/jbenet/go-sockaddr/net",
167
- "Rev": "47da30afb462a74cfc7f3df73d4e5cb1bc42b7c7"
167
+ "Rev": "da304f94eea1af8ba8d1faf184623e1f9d9777dc"
168
},
169
{
170
"ImportPath": "github.com/jbenet/go-temp-err-catcher",
Godeps/_workspace/src/github.com/jbenet/go-reuseport/README.md
+1
-1
@@ -1,6 +1,6 @@
1
# go-reuseport
2
3
-
3
+[](https://travis-ci.org/jbenet/go-reuseport)
4
5
This package enables listening and dialing from _the same_ TCP or UDP port.
6
This means that the following sockopts are set:
Godeps/_workspace/src/github.com/jbenet/go-reuseport/impl_unix.go
+1
-2
@@ -13,8 +13,6 @@ import (
13
)
14
15
const (
16
- tcp4 = 52 // "4"
17
- tcp6 = 54 // "6"
16
filePrefix = "port."
17
)
18
@@ -305,6 +303,7 @@ func listenUDP(netw, addr string) (c net.Conn, err error) {
303
return c, err
304
}
305
306
+// this is close to the connect() function inside stdlib/net
307
func connect(fd int, ra syscall.Sockaddr) error {
308
switch err := syscall.Connect(fd, ra); err {
309
case syscall.EINPROGRESS, syscall.EALREADY, syscall.EINTR:
Godeps/_workspace/src/github.com/jbenet/go-sockaddr/net/net.go
+19
-19
@@ -10,9 +10,6 @@ import (
10
// returns AF_UNSPEC if unknown
11
func NetAddrAF(addr net.Addr) int {
12
switch addr := addr.(type) {
13
- default:
14
- return AF_UNSPEC
15
-
13
case *net.IPAddr:
14
return IPAF(addr.IP)
15
@@ -24,6 +21,9 @@ func NetAddrAF(addr net.Addr) int {
21
22
case *net.UnixAddr:
23
return AF_UNIX
24
+
25
+ default:
26
+ return AF_UNSPEC
27
}
28
}
29
@@ -31,14 +31,14 @@ func NetAddrAF(addr net.Addr) int {
31
// returns AF_UNSPEC if unknown
32
func IPAF(ip net.IP) int {
33
switch {
34
- default:
35
- return AF_UNSPEC
36
-
34
case ip.To4() != nil:
35
return AF_INET
36
37
case ip.To16() != nil:
38
return AF_INET6
39
+
40
+ default:
41
+ return AF_UNSPEC
42
}
43
}
44
@@ -46,9 +46,6 @@ func IPAF(ip net.IP) int {
46
// returns -1 if protocol unknown
47
func NetAddrIPPROTO(addr net.Addr) int {
48
switch addr := addr.(type) {
49
- default:
50
- return -1
51
-
49
case *net.IPAddr:
50
switch {
51
default:
@@ -66,6 +63,9 @@ func NetAddrIPPROTO(addr net.Addr) int {
63
64
case *net.UDPAddr:
65
return IPPROTO_UDP
66
+
67
+ default:
68
+ return -1
69
}
70
}
71
@@ -73,8 +73,6 @@ func NetAddrIPPROTO(addr net.Addr) int {
73
// returns 0 if type unknown
74
func NetAddrSOCK(addr net.Addr) int {
75
switch addr := addr.(type) {
76
- default:
77
- return 0
76
case *net.IPAddr:
77
return SOCK_DGRAM
78
case *net.TCPAddr:
@@ -92,6 +90,8 @@ func NetAddrSOCK(addr net.Addr) int {
90
case "unixpacket":
91
return SOCK_SEQPACKET
92
}
93
+ default:
94
+ return 0
95
}
96
}
97
@@ -99,8 +99,6 @@ func NetAddrSOCK(addr net.Addr) int {
99
// Returns nil if the input is invalid or conversion is not possible.
100
func NetAddrToSockaddr(addr net.Addr) syscall.Sockaddr {
101
switch addr := addr.(type) {
102
- default:
103
- return nil
102
case *net.IPAddr:
103
return IPAddrToSockaddr(addr)
104
case *net.TCPAddr:
@@ -110,6 +108,8 @@ func NetAddrToSockaddr(addr net.Addr) syscall.Sockaddr {
108
case *net.UnixAddr:
109
sa, _ := UnixAddrToSockaddr(addr)
110
return sa
111
+ default:
112
+ return nil
113
}
114
}
115
@@ -145,14 +145,14 @@ func IPAddrToSockaddr(addr *net.IPAddr) syscall.Sockaddr {
145
func TCPAddrToSockaddr(addr *net.TCPAddr) syscall.Sockaddr {
146
sa := IPAndZoneToSockaddr(addr.IP, addr.Zone)
147
switch sa := sa.(type) {
148
- default:
149
- return nil
148
case *syscall.SockaddrInet4:
149
sa.Port = addr.Port
150
return sa
151
case *syscall.SockaddrInet6:
152
sa.Port = addr.Port
153
return sa
154
+ default:
155
+ return nil
156
}
157
}
158
@@ -161,14 +161,14 @@ func TCPAddrToSockaddr(addr *net.TCPAddr) syscall.Sockaddr {
161
func UDPAddrToSockaddr(addr *net.UDPAddr) syscall.Sockaddr {
162
sa := IPAndZoneToSockaddr(addr.IP, addr.Zone)
163
switch sa := sa.(type) {
164
- default:
165
- return nil
164
case *syscall.SockaddrInet4:
165
sa.Port = addr.Port
166
return sa
167
case *syscall.SockaddrInet6:
168
sa.Port = addr.Port
169
return sa
170
+ default:
171
+ return nil
172
}
173
}
174
@@ -178,14 +178,14 @@ func UDPAddrToSockaddr(addr *net.UDPAddr) syscall.Sockaddr {
178
func UnixAddrToSockaddr(addr *net.UnixAddr) (syscall.Sockaddr, int) {
179
t := 0
180
switch addr.Net {
181
- default:
182
- return nil, 0
181
case "unix":
182
t = syscall.SOCK_STREAM
183
case "unixgram":
184
t = syscall.SOCK_DGRAM
185
case "unixpacket":
186
t = syscall.SOCK_SEQPACKET
187
+ default:
188
+ return nil, 0
189
}
190
return &syscall.SockaddrUnix{Name: addr.Name}, t
191
}