]> Cypherpunks repositories - gostls13.git/commit
net: consolidate common socket functions
authorDave Cheney <dave@cheney.net>
Fri, 27 Apr 2012 12:17:08 +0000 (22:17 +1000)
committerDave Cheney <dave@cheney.net>
Fri, 27 Apr 2012 12:17:08 +0000 (22:17 +1000)
commitf72c828c677f1cc47f62bc6f39096e9806b45c1d
tree9fcc41645ebbd3e8891f069cdd8ed8893b9a0f6b
parent1a7905372536154661b094accadcbc1e692b1544
net: consolidate common socket functions

In resolving 3507, the fix had to be applied individually to
the four *Conn types, tcp, udp, rawip and unix, due to the
duplicate code in each Conn type.

This CL consolidates the common net.Conn methods that all four
*Conn types implement into a base conn type.

Pros:
* The fix for 3507 would have only needed to be applied to one
method. Further improvements, such as possibly removing the
c.fd != nil check in c.ok(), would benefit from this CL.
* Nearly 300 lines removed from the net package.
* The public interface and documentation are not changed.
* I think this is an excellent example of the power of embedding.

Cons:
* The net package is already distributed over many files, this
CL adds another place to look.
* The fix for 3507 was a total of 16 lines changed, this follow
up CL could be considered to be an overreaction as new Conn types
are unlikely to be added in the near future.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6098047
src/pkg/net/iprawsock_posix.go
src/pkg/net/net_posix.go [new file with mode: 0644]
src/pkg/net/tcpsock_posix.go
src/pkg/net/udpsock_posix.go
src/pkg/net/unixsock_posix.go