diff options
author | Paulo Gomes <pjbgf@linux.com> | 2023-05-04 22:10:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-04 22:10:19 +0100 |
commit | 191f4ba946c768221dd914fcf0675572fc36c55d (patch) | |
tree | 52c3450287073b3d8f65b2c001f9c7150cc66b9d /plumbing/transport/http/transport.go | |
parent | da73c5f950fb399611e3eb608f6ee99f23eb53b5 (diff) | |
parent | a830187d90a6bc36f9466c075ed49076f591efa9 (diff) | |
download | go-git-191f4ba946c768221dd914fcf0675572fc36c55d.tar.gz |
Merge pull request #744 from aryan9600/proxy-options
Add support for custom proxy settings
Diffstat (limited to 'plumbing/transport/http/transport.go')
-rw-r--r-- | plumbing/transport/http/transport.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plumbing/transport/http/transport.go b/plumbing/transport/http/transport.go new file mode 100644 index 0000000..052f3c8 --- /dev/null +++ b/plumbing/transport/http/transport.go @@ -0,0 +1,40 @@ +package http + +import ( + "net/http" + "net/url" +) + +// transportOptions contains transport specific configuration. +type transportOptions struct { + insecureSkipTLS bool + // []byte is not comparable. + caBundle string + proxyURL url.URL +} + +func (c *client) addTransport(opts transportOptions, transport *http.Transport) { + c.m.Lock() + c.transports.Add(opts, transport) + c.m.Unlock() +} + +func (c *client) removeTransport(opts transportOptions) { + c.m.Lock() + c.transports.Remove(opts) + c.m.Unlock() +} + +func (c *client) fetchTransport(opts transportOptions) (*http.Transport, bool) { + c.m.RLock() + t, ok := c.transports.Get(opts) + c.m.RUnlock() + if !ok { + return nil, false + } + transport, ok := t.(*http.Transport) + if !ok { + return nil, false + } + return transport, true +} |