| package transport // import "github.com/docker/docker/pkg/plugins/transport" |
| |
| import ( |
| "io" |
| "net/http" |
| ) |
| |
| // httpTransport holds an http.RoundTripper |
| // and information about the scheme and address the transport |
| // sends request to. |
| type httpTransport struct { |
| http.RoundTripper |
| scheme string |
| addr string |
| } |
| |
| // NewHTTPTransport creates a new httpTransport. |
| func NewHTTPTransport(r http.RoundTripper, scheme, addr string) Transport { |
| return httpTransport{ |
| RoundTripper: r, |
| scheme: scheme, |
| addr: addr, |
| } |
| } |
| |
| // NewRequest creates a new http.Request and sets the URL |
| // scheme and address with the transport's fields. |
| func (t httpTransport) NewRequest(path string, data io.Reader) (*http.Request, error) { |
| req, err := newHTTPRequest(path, data) |
| if err != nil { |
| return nil, err |
| } |
| req.URL.Scheme = t.scheme |
| req.URL.Host = t.addr |
| return req, nil |
| } |