delthas: 1 Add support for the ALL_PROXY, NO_PROXY environment variables 3 files changed, 15 insertions(+), 5 deletions(-)
Copy & paste the following snippet into your terminal to import this patchset into git:
curl -s https://lists.sr.ht/~taiite/public-inbox/patches/29593/mbox | git am -3Learn more about email & git
This adds support for SOCKS5 proxy support through standard environement variables. To connect to the SOCKS5 proxy at host:port with credentials user:pass, run: export ALL_PROXY=socks5://user:pass@host:port Co-authored-by: the-y <the-y@riseup.net> --- Inspired by the-y's patch "Implement support for socks5 proxy" app.go | 4 +++- go.mod | 3 ++- go.sum | 13 ++++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app.go b/app.go index d26cf68..485521f 100644 --- a/app.go +++ b/app.go @@ -11,6 +11,8 @@ import ( "time" "unicode" + "golang.org/x/net/proxy" + "git.sr.ht/~taiite/senpai/irc" "git.sr.ht/~taiite/senpai/ui" "github.com/gdamore/tcell/v2" @@ -339,7 +341,7 @@ func (app *App) tryConnect() (conn net.Conn, err error) { } } - conn, err = net.Dial("tcp", addr) + conn, err = proxy.FromEnvironment().Dial("tcp", addr) if err != nil { return } diff --git a/go.mod b/go.mod index d3c9b55..a01660c 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,8 @@ require ( git.sr.ht/~emersion/go-scfg v0.0.0-20201019143924-142a8aa629fc github.com/gdamore/tcell/v2 v2.3.11 github.com/mattn/go-runewidth v0.0.10 - golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf + golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6 mvdan.cc/xurls/v2 v2.3.0 ) diff --git a/go.sum b/go.sum index 856f865..c803487 100644 --- a/go.sum +++ b/go.sum @@ -19,14 +19,21 @@ github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsK github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf h1:MZ2shdL+ZM/XzY3ZGOnh4Nlpnxz5GSOhOmtHo3iPU6M= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6 h1:Vv0JUPWTyeqUq42B2WJ1FeIDjjvGKoA2Ss+Ts0lAVbs= golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= mvdan.cc/xurls/v2 v2.3.0 h1:59Olnbt67UKpxF1EwVBopJvkSUBmgtb468E4GVWIZ1I= base-commit: fe9bc1a2167d87aed1cdef6f7eb58732f8f25ac0 -- 2.17.1
That's neat! Cool trick with the environment variable/proxy.FromEnvironment(). Would there be a way to combine it? So that you can set the proxy from settings/config file but also from the environment? I especially like the socks5://... uri. So having simply having proxy settings over socks5addr as I did in my patch. On 18.02.22 17:12, delthas wrote: