Split off a new SOCKS5 connect() method from Dial.
connect() takes an existing connection to a socks5 server, and
commands the server to extend that connection to a given target
address and port.
Change-Id: I5dbba58a67a0d884bda3d3ac194dc18bdebe74ab
Reviewed-on: https://go-review.googlesource.com/36643
Reviewed-by: Adam Langley <agl@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
SOCKS5 uses a single-byte field for domain name length. This change
causes dials to domain names longer than 255 chars to fail instead
of sending an invalid request to the proxy.
LGTM=mikioh.mikioh
R=golang-codereviews, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/90790044
The code was using the SOCKS version number (5) where it should have been using the username/password protocol version number (1).
With this change, username/password authentication actually works.
R=golang-dev
CC=golang-dev
https://golang.org/cl/10134044
Both types IPv6 IPv4-mapped address and IPv4-compatible
address are not allowed to be used in wire protocols.
Fixesgolang/go#4709.
Thank you raptium for original CL 6922050.
R=golang-dev, agl
CC=golang-dev, raptium
https://golang.org/cl/7220047
net.IP represents either an IPv4 or IPv6 address. In case of
the address of IPv4 node, it uses IPv4-mapped IPv6 address
format by default.
R=agl, dave
CC=golang-dev
https://golang.org/cl/6782078
This change copies exp/proxy to go.net without any code changes. A
followup CL will remove exp/proxy.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6449097