debian-forge-composer/vendor/github.com/mattn/go-ieproxy
Ondřej Budai 1b05192298 upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL
Fedora 33 and rawhide got an updated version of the azblob library. Sadly, it
introduced a non-compatible API change. This commit does the same thing as
a67baf5a did for kolo/xmlrpc:

We now have two wrappers around the affected part of the API. Fedora 32 uses
the wrapper around the old API, whereas Fedora 33 and 34 (and RHEL with its
vendored deps) use the wrapper around the new API. The switch is implemented
using go build flags and spec file magic.

See a67baf5a for more thoughts.

Also, there's v0.11.1-0.20201209121048-6df5d9af221d in go.mod, why?

The maintainers of azblob probably tagged a wrong commit with v0.12.0 which
breaks go. The long v0.11.1-.* version is basically the proper v0.12.0 commit.
See https://github.com/Azure/azure-storage-blob-go/issues/236 for more
information.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2021-01-06 16:31:28 +01:00
..
.gitignore go: include vendored modules 2020-02-17 16:09:17 +01:00
go.mod upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00
go.sum upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00
ieproxy.go go: include vendored modules 2020-02-17 16:09:17 +01:00
ieproxy_unix.go go: include vendored modules 2020-02-17 16:09:17 +01:00
ieproxy_windows.go upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00
kernel32_data_windows.go upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00
LICENSE go: include vendored modules 2020-02-17 16:09:17 +01:00
pac_unix.go go: include vendored modules 2020-02-17 16:09:17 +01:00
pac_windows.go go: include vendored modules 2020-02-17 16:09:17 +01:00
proxy_middleman.go upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00
proxy_middleman_unix.go upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00
proxy_middleman_windows.go upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00
README.md go: include vendored modules 2020-02-17 16:09:17 +01:00
utils.go go: include vendored modules 2020-02-17 16:09:17 +01:00
winhttp_data_windows.go upload/azure: use the new azure/azblob API on Fedora 33+ & RHEL 2021-01-06 16:31:28 +01:00

ieproxy

Go package to detect the proxy settings on Windows platform.

The settings are initially attempted to be read from the WinHttpGetIEProxyConfigForCurrentUser DLL call, but falls back to the registry (CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings) in the event the DLL call fails.

For more information, take a look at the documentation

Methods

You can either obtain a net/http compatible proxy function using ieproxy.GetProxyFunc(), set environment variables using ieproxy.OverrideEnvWithStaticProxy() (though no automatic configuration is available this way), or obtain the proxy settings via ieproxy.GetConf().

Method Supported configuration options:
ieproxy.GetProxyFunc() Static, Specified script, and fully automatic
ieproxy.OverrideEnvWithStaticProxy() Static
ieproxy.GetConf() Depends on how you use it

Examples

Using GetProxyFunc():

func init() {
	http.DefaultTransport.(*http.Transport).Proxy = ieproxy.GetProxyFunc()
}

GetProxyFunc acts as a middleman between net/http and mattn/go-ieproxy in order to select the correct proxy configuration based off the details supplied in the config.

Using OverrideEnvWithStaticProxy():

func init() {
	ieproxy.OverrideEnvWithStaticProxy()
	http.DefaultTransport.(*http.Transport).Proxy = http.ProxyFromEnvironment
}

OverrideEnvWithStaticProxy overrides the relevant environment variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY) with the static, manually configured proxy details typically found in the registry.

Using GetConf():

func main() {
	conf := ieproxy.GetConf()
	//Handle proxies how you want to.
}