Remove: memconn | Add: http client

This commit is contained in:
kayos@tcp.direct 2021-11-25 00:14:28 -08:00
parent 6e81439e3a
commit 24c4cefe81
Signed by: kayos
GPG Key ID: 4B841471B4BEE979
3 changed files with 25 additions and 44 deletions

24
mrworldwide.go Normal file
View File

@ -0,0 +1,24 @@
package Prox5
import (
"crypto/tls"
"net/http"
)
// GetHTTPClient retrieves a pointer to an http.Client powered by MysteryDialer.
func (s *Swamp) GetHTTPClient() *http.Client {
return &http.Client{
Transport: &http.Transport{
DialContext: s.DialContext,
DisableKeepAlives: true,
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
TLSHandshakeTimeout: s.GetServerTimeout(),
},
Timeout: s.GetServerTimeout(),
}
}
// RoundTrip is Mr. WorldWide. Obviously. See: https://pkg.go.dev/net/http#RoundTripper
func (s *Swamp) RoundTrip(req *http.Request) (*http.Response, error) {
return s.GetHTTPClient().Do(req)
}

View File

@ -39,9 +39,7 @@ func (s *Swamp) MysteryDialer(ctx context.Context, network, addr string) (net.Co
}
randSleep()
}
var err error
if sock == nil {
continue
}

View File

@ -1,14 +1,9 @@
package Prox5
import (
"context"
"crypto/tls"
"fmt"
"git.tcp.direct/kayos/go-socks5"
"github.com/akutz/memconn"
"net"
"net/http"
"time"
)
type socksLogger struct {
@ -54,39 +49,3 @@ func (s *Swamp) StartSOCKS5Server(listen, username, password string) error {
return server.ListenAndServe("tcp", listen)
}
// StartMemoryServer starts our rotating proxy SOCKS5 server as an in-memory socket.
func (s *Swamp) StartInMemorySocks5Server() error {
conf := &socks5.Config{
Logger: s.socksServerLogger,
Dial: s.MysteryDialer,
}
s.dbgPrint("listening for SOCKS5 connections in memory")
server, err := socks5.New(conf)
if err != nil {
return err
}
listener, err := memconn.Listen("memu", "Prox5")
if err != nil {
return err
}
return server.Serve(listener)
}
func (s *Swamp) GetInMemoryHTTPClient() *http.Client {
return &http.Client{
Transport: &http.Transport{
DialContext: func(
ctx context.Context, _, _ string) (net.Conn, error) {
return memconn.DialContext(ctx, "memu", "Prox5")
},
DisableKeepAlives: true,
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
TLSHandshakeTimeout: s.swampopt.validationTimeout.Load().(time.Duration),
},
}
}