• Dave Cheney's avatar
    net: consolidate common socket functions · f72c828c
    Dave Cheney authored
    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
    f72c828c
iprawsock_posix.go 4.36 KB