mirror of https://github.com/golang/go.git
net/http: Fix error unwrapping in transport
This commit is contained in:
parent
3a41094107
commit
504efbc507
|
|
@ -2043,7 +2043,7 @@ func (pc *persistConn) mapRoundTripError(req *transportRequest, startBytesWritte
|
|||
if pc.nwrite == startBytesWritten {
|
||||
return nothingWrittenError{err}
|
||||
}
|
||||
return fmt.Errorf("net/http: HTTP/1.x transport connection broken: %v", err)
|
||||
return fmt.Errorf("net/http: HTTP/1.x transport connection broken: %w", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
|
@ -2250,7 +2250,7 @@ func (pc *persistConn) readLoopPeekFailLocked(peekErr error) {
|
|||
// common case.
|
||||
pc.closeLocked(errServerClosedIdle)
|
||||
} else {
|
||||
pc.closeLocked(fmt.Errorf("readLoopPeekFailLocked: %v", peekErr))
|
||||
pc.closeLocked(fmt.Errorf("readLoopPeekFailLocked: %w", peekErr))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2384,6 +2384,10 @@ type nothingWrittenError struct {
|
|||
error
|
||||
}
|
||||
|
||||
func (nwe nothingWrittenError) Unwrap() error {
|
||||
return nwe.error
|
||||
}
|
||||
|
||||
func (pc *persistConn) writeLoop() {
|
||||
defer close(pc.writeLoopDone)
|
||||
for {
|
||||
|
|
@ -2621,7 +2625,7 @@ func (pc *persistConn) roundTrip(req *transportRequest) (resp *Response, err err
|
|||
req.logf("writeErrCh resv: %T/%#v", err, err)
|
||||
}
|
||||
if err != nil {
|
||||
pc.close(fmt.Errorf("write error: %v", err))
|
||||
pc.close(fmt.Errorf("write error: %w", err))
|
||||
return nil, pc.mapRoundTripError(req, startBytesWritten, err)
|
||||
}
|
||||
if d := pc.t.ResponseHeaderTimeout; d > 0 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue