mirror of https://github.com/golang/go.git
net/http/httputil: tell people not to use ClientConn and ServerConn
A very smart developer at Gophercon just asked me to help debug a problem and I was horrified to learn that he was using httputil's ClientConn. I forgot ClientConn and ServerConn were even included in Go 1! They should've been deleted. Scare people away from using them. The net/http package does not use them and they're unused, unmaintained and untouched in 4+ years. LGTM=r R=r, adg CC=golang-codereviews https://golang.org/cl/92790043
This commit is contained in:
parent
4c129c083b
commit
9f2e1efd72
|
|
@ -31,8 +31,8 @@ var errClosed = errors.New("i/o operation on closed connection")
|
|||
// i.e. requests can be read out of sync (but in the same order) while the
|
||||
// respective responses are sent.
|
||||
//
|
||||
// ServerConn is low-level and should not be needed by most applications.
|
||||
// See Server.
|
||||
// ServerConn is low-level and old. Applications should instead use Server
|
||||
// in the net/http package.
|
||||
type ServerConn struct {
|
||||
lk sync.Mutex // read-write protects the following fields
|
||||
c net.Conn
|
||||
|
|
@ -45,8 +45,11 @@ type ServerConn struct {
|
|||
pipe textproto.Pipeline
|
||||
}
|
||||
|
||||
// NewServerConn returns a new ServerConn reading and writing c. If r is not
|
||||
// NewServerConn returns a new ServerConn reading and writing c. If r is not
|
||||
// nil, it is the buffer to use when reading c.
|
||||
//
|
||||
// ServerConn is low-level and old. Applications should instead use Server
|
||||
// in the net/http package.
|
||||
func NewServerConn(c net.Conn, r *bufio.Reader) *ServerConn {
|
||||
if r == nil {
|
||||
r = bufio.NewReader(c)
|
||||
|
|
@ -221,8 +224,8 @@ func (sc *ServerConn) Write(req *http.Request, resp *http.Response) error {
|
|||
// supports hijacking the connection calling Hijack to
|
||||
// regain control of the underlying net.Conn and deal with it as desired.
|
||||
//
|
||||
// ClientConn is low-level and should not be needed by most applications.
|
||||
// See Client.
|
||||
// ClientConn is low-level and old. Applications should instead use
|
||||
// Client or Transport in the net/http package.
|
||||
type ClientConn struct {
|
||||
lk sync.Mutex // read-write protects the following fields
|
||||
c net.Conn
|
||||
|
|
@ -238,6 +241,9 @@ type ClientConn struct {
|
|||
|
||||
// NewClientConn returns a new ClientConn reading and writing c. If r is not
|
||||
// nil, it is the buffer to use when reading c.
|
||||
//
|
||||
// ClientConn is low-level and old. Applications should use Client or
|
||||
// Transport in the net/http package.
|
||||
func NewClientConn(c net.Conn, r *bufio.Reader) *ClientConn {
|
||||
if r == nil {
|
||||
r = bufio.NewReader(c)
|
||||
|
|
@ -252,6 +258,9 @@ func NewClientConn(c net.Conn, r *bufio.Reader) *ClientConn {
|
|||
|
||||
// NewProxyClientConn works like NewClientConn but writes Requests
|
||||
// using Request's WriteProxy method.
|
||||
//
|
||||
// New code should not use NewProxyClientConn. See Client or
|
||||
// Transport in the net/http package instead.
|
||||
func NewProxyClientConn(c net.Conn, r *bufio.Reader) *ClientConn {
|
||||
cc := NewClientConn(c, r)
|
||||
cc.writeReq = (*http.Request).WriteProxy
|
||||
|
|
|
|||
Loading…
Reference in New Issue