forked from TrueCloudLab/distribution
Merge pull request #2985 from novas0x2a/default-transport
make it possible to wrap the client transport in another one
This commit is contained in:
commit
bdf3438b52
1 changed files with 12 additions and 4 deletions
|
@ -6,6 +6,13 @@ import (
|
|||
"sync"
|
||||
)
|
||||
|
||||
func identityTransportWrapper(rt http.RoundTripper) http.RoundTripper {
|
||||
return rt
|
||||
}
|
||||
|
||||
// DefaultTransportWrapper allows a user to wrap every generated transport
|
||||
var DefaultTransportWrapper = identityTransportWrapper
|
||||
|
||||
// RequestModifier represents an object which will do an inplace
|
||||
// modification of an HTTP request.
|
||||
type RequestModifier interface {
|
||||
|
@ -31,10 +38,11 @@ func (h headerModifier) ModifyRequest(req *http.Request) error {
|
|||
// NewTransport creates a new transport which will apply modifiers to
|
||||
// the request on a RoundTrip call.
|
||||
func NewTransport(base http.RoundTripper, modifiers ...RequestModifier) http.RoundTripper {
|
||||
return &transport{
|
||||
return DefaultTransportWrapper(
|
||||
&transport{
|
||||
Modifiers: modifiers,
|
||||
Base: base,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// transport is an http.RoundTripper that makes HTTP requests after
|
||||
|
|
Loading…
Reference in a new issue