commit 81e4a15deaa8eccb797335b9ca84c1b17f8bdd41 Author: David Fifield david@bamsoftware.com Date: Thu Jan 31 10:50:48 2019 -0700
Also recognize utls=none.
https://bugs.torproject.org/29077#comment:13 --- doc/meek-client.1 | 2 +- doc/meek-client.1.txt | 3 ++- meek-client/utls.go | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/doc/meek-client.1 b/doc/meek-client.1 index 4e44056..1ca6640 100644 --- a/doc/meek-client.1 +++ b/doc/meek-client.1 @@ -197,7 +197,7 @@ HelloIOS_11_1 HelloIOS_Auto .RE .sp -As a special case, the value HelloGolang is recognized as an alias for omitting the +As a special case, the values "none" and "HelloGolang" are recognized as aliases for omitting the \fButls\fR SOCKS arg; i&.e&., use native Go TLS&. .RE diff --git a/doc/meek-client.1.txt b/doc/meek-client.1.txt index fc2303e..89d1265 100644 --- a/doc/meek-client.1.txt +++ b/doc/meek-client.1.txt @@ -64,7 +64,8 @@ The possible values of __CLIENTHELLOID__ are: - HelloIOS_11_1 - HelloIOS_Auto
-As a special case, the value HelloGolang is recognized as an alias for +As a special case, the values "none" and "HelloGolang" +are recognized as aliases for omitting the **utls** SOCKS arg; i.e., use native Go TLS. --
diff --git a/meek-client/utls.go b/meek-client/utls.go index f64b731..832b3d6 100644 --- a/meek-client/utls.go +++ b/meek-client/utls.go @@ -209,6 +209,7 @@ func makeRoundTripper(req *http.Request, clientHelloID *utls.ClientHelloID) (htt var clientHelloIDMap = map[string]*utls.ClientHelloID{ // No HelloCustom: not useful for external configuration. // No HelloRandomized: doesn't negotiate consistent ALPN. + "none": nil, // special case: disable uTLS "hellogolang": nil, // special case: disable uTLS "hellorandomizedalpn": &utls.HelloRandomizedALPN, "hellorandomizednoalpn": &utls.HelloRandomizedNoALPN, @@ -231,7 +232,7 @@ func NewUTLSRoundTripper(name string) (http.RoundTripper, error) { return nil, fmt.Errorf("no uTLS Client Hello ID named %q", name) } if clientHelloID == nil { - // Special case for HelloGolang. + // Special case for "none" and HelloGolang. return httpRoundTripper, nil } return &UTLSRoundTripper{