refactor(session.go): replace engine/netx with netxlite (#767)
This diff replaces engine/netx code with netxlite code in the engine/session.go file. To this end, we needed to move some code from engine/netx to netxlite. While there, we did review and improve the unit tests. A notable change in this diff is (or seems to be) that in engine/session.go we're not filtering for bogons anymore so that, in principle, we could believe a resolver returning to us bogon IP addresses for OONI services. However, I did not bother with changing bogons filtering because the sessionresolver package is already filtering for bogons, so it is actually okay to avoid doing that again the session.go code. See: https://github.com/ooni/probe-cli/blob/v3.15.0-alpha.1/internal/engine/internal/sessionresolver/resolvermaker.go#L88 There are two reference issues for this cleanup: 1. https://github.com/ooni/probe/issues/2115 2. https://github.com/ooni/probe/issues/2121
This commit is contained in:
parent
595d0744db
commit
314c3c934d
16 changed files with 466 additions and 347 deletions
|
|
@ -14,10 +14,10 @@ import (
|
|||
"github.com/ooni/probe-cli/v3/internal/bytecounter"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/geolocate"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/internal/sessionresolver"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/netx"
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/probeservices"
|
||||
"github.com/ooni/probe-cli/v3/internal/kvstore"
|
||||
"github.com/ooni/probe-cli/v3/internal/model"
|
||||
"github.com/ooni/probe-cli/v3/internal/netxlite"
|
||||
"github.com/ooni/probe-cli/v3/internal/platform"
|
||||
"github.com/ooni/probe-cli/v3/internal/tunnel"
|
||||
"github.com/ooni/probe-cli/v3/internal/version"
|
||||
|
|
@ -191,20 +191,19 @@ func NewSession(ctx context.Context, config SessionConfig) (*Session, error) {
|
|||
}
|
||||
}
|
||||
sess.proxyURL = proxyURL
|
||||
httpConfig := netx.Config{
|
||||
ByteCounter: sess.byteCounter,
|
||||
BogonIsError: true,
|
||||
Logger: sess.logger,
|
||||
ProxyURL: proxyURL,
|
||||
}
|
||||
sess.resolver = &sessionresolver.Resolver{
|
||||
ByteCounter: sess.byteCounter,
|
||||
KVStore: config.KVStore,
|
||||
Logger: sess.logger,
|
||||
ProxyURL: proxyURL,
|
||||
}
|
||||
httpConfig.FullResolver = sess.resolver
|
||||
sess.httpDefaultTransport = netx.NewHTTPTransport(httpConfig)
|
||||
dialer := netxlite.NewDialerWithResolver(sess.logger, sess.resolver)
|
||||
dialer = netxlite.NewMaybeProxyDialer(dialer, proxyURL)
|
||||
handshaker := netxlite.NewTLSHandshakerStdlib(sess.logger)
|
||||
tlsDialer := netxlite.NewTLSDialer(dialer, handshaker)
|
||||
txp := netxlite.NewHTTPTransport(sess.logger, dialer, tlsDialer)
|
||||
txp = bytecounter.NewHTTPTransport(txp, sess.byteCounter)
|
||||
sess.httpDefaultTransport = txp
|
||||
return sess, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue