commit 05491c83be510e81b704bd86bc1a5e380e6f1d14 Author: David Fifield david@bamsoftware.com Date: Wed Jan 16 22:30:06 2019 -0700
Make RoundTripper a field of RequestInfo. --- meek-client/meek-client.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/meek-client/meek-client.go b/meek-client/meek-client.go index 9c715a3..1b13f11 100644 --- a/meek-client/meek-client.go +++ b/meek-client/meek-client.go @@ -117,6 +117,9 @@ type RequestInfo struct { // The Host header to put in the HTTP request (optional and may be // different from the host name in URL). Host string + // The RoundTripper to use to send requests. This may vary depending on + // the value of global options like --helper. + RoundTripper http.RoundTripper }
// Make an http.Request from the payload data in buf and the request metadata in @@ -177,15 +180,11 @@ again: // Send the data in buf to the remote URL, wait for a reply, and feed the reply // body back into conn. func sendRecv(buf []byte, conn net.Conn, info *RequestInfo) (int64, error) { - var rt http.RoundTripper = httpRoundTripper - if options.UseHelper { - rt = helperRoundTripper - } req, err := makeRequest(buf, info) if err != nil { return 0, err } - resp, err := roundTripRetries(rt, req, maxTries) + resp, err := roundTripRetries(info.RoundTripper, req, maxTries) if err != nil { return 0, err } @@ -319,6 +318,11 @@ func handler(conn *pt.SocksConn) error { info.URL.Host = front }
+ info.RoundTripper = httpRoundTripper + if options.UseHelper { + info.RoundTripper = helperRoundTripper + } + return copyLoop(conn, &info) }