Hello,
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.
I'd like to present a CL for discussion which consolidates the common
net.Conn methods that all four *Conn types implement into a base conn
type.
http://codereview.appspot.com/6098047/
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.
I look forward to your comments.
Cheers
Dave