Skip to content

Commit

Permalink
refactor: move tls handshaker to netxlite (ooni#400)
Browse files Browse the repository at this point in the history
  • Loading branch information
bassosimone committed Jun 25, 2021
1 parent 278c76b commit f03eb64
Show file tree
Hide file tree
Showing 15 changed files with 182 additions and 172 deletions.
2 changes: 1 addition & 1 deletion internal/cmd/oohelperd/internal/internal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func TestWorkingAsIntended(t *testing.T) {
Client: http.DefaultClient,
Dialer: new(net.Dialer),
MaxAcceptableBody: 1 << 24,
Resolver: netxlite.ResolverSystem{},
Resolver: &netxlite.ResolverSystem{},
}
srv := httptest.NewServer(handler)
defer srv.Close()
Expand Down
4 changes: 2 additions & 2 deletions internal/engine/experiment/ndt7/dial.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ func newDialManager(ndt7URL string, logger model.Logger, userAgent string) dialM
}

func (mgr dialManager) dialWithTestName(ctx context.Context, testName string) (*websocket.Conn, error) {
var reso resolver.Resolver = netxlite.ResolverSystem{}
reso = netxlite.ResolverLogger{Resolver: reso, Logger: mgr.logger}
var reso resolver.Resolver = &netxlite.ResolverSystem{}
reso = &netxlite.ResolverLogger{Resolver: reso, Logger: mgr.logger}
dlr := dialer.New(&dialer.Config{
ContextByteCounting: true,
Logger: mgr.logger,
Expand Down
5 changes: 2 additions & 3 deletions internal/engine/legacy/netx/dialer.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/ooni/probe-cli/v3/internal/engine/legacy/netx/modelx"
"github.com/ooni/probe-cli/v3/internal/engine/netx/dialer"
"github.com/ooni/probe-cli/v3/internal/engine/netx/tlsdialer"
"github.com/ooni/probe-cli/v3/internal/netxlite"
)

// Dialer performs measurements while dialing.
Expand Down Expand Up @@ -107,9 +108,7 @@ func newTLSDialer(d dialer.Dialer, config *tls.Config) tlsdialer.TLSDialer {
Dialer: d,
TLSHandshaker: tlsdialer.EmitterTLSHandshaker{
TLSHandshaker: tlsdialer.ErrorWrapperTLSHandshaker{
TLSHandshaker: tlsdialer.TimeoutTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
},
},
}
Expand Down
2 changes: 1 addition & 1 deletion internal/engine/legacy/netx/resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ func resolverWrapTransport(txp resolver.RoundTripper) resolver.EmitterResolver {
}

func newResolverSystem() resolver.EmitterResolver {
return resolverWrapResolver(netxlite.ResolverSystem{})
return resolverWrapResolver(&netxlite.ResolverSystem{})
}

func newResolverUDP(dialer resolver.Dialer, address string) resolver.EmitterResolver {
Expand Down
9 changes: 4 additions & 5 deletions internal/engine/netx/netx.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ var defaultCertPool *x509.CertPool = tlsx.NewDefaultCertPool()
// NewResolver creates a new resolver from the specified config
func NewResolver(config Config) Resolver {
if config.BaseResolver == nil {
config.BaseResolver = netxlite.ResolverSystem{}
config.BaseResolver = &netxlite.ResolverSystem{}
}
var r Resolver = config.BaseResolver
r = resolver.AddressResolver{Resolver: r}
Expand All @@ -134,7 +134,7 @@ func NewResolver(config Config) Resolver {
}
r = resolver.ErrorWrapperResolver{Resolver: r}
if config.Logger != nil {
r = netxlite.ResolverLogger{Logger: config.Logger, Resolver: r}
r = &netxlite.ResolverLogger{Logger: config.Logger, Resolver: r}
}
if config.ResolveSaver != nil {
r = resolver.SaverResolver{Resolver: r, Saver: config.ResolveSaver}
Expand Down Expand Up @@ -176,8 +176,7 @@ func NewTLSDialer(config Config) TLSDialer {
if config.Dialer == nil {
config.Dialer = NewDialer(config)
}
var h tlsHandshaker = tlsdialer.SystemTLSHandshaker{}
h = tlsdialer.TimeoutTLSHandshaker{TLSHandshaker: h}
var h tlsHandshaker = &netxlite.TLSHandshakerStdlib{}
h = tlsdialer.ErrorWrapperTLSHandshaker{TLSHandshaker: h}
if config.Logger != nil {
h = tlsdialer.LoggingTLSHandshaker{Logger: config.Logger, TLSHandshaker: h}
Expand Down Expand Up @@ -318,7 +317,7 @@ func NewDNSClientWithOverrides(config Config, URL, hostOverride, SNIOverride,
}
switch resolverURL.Scheme {
case "system":
c.Resolver = netxlite.ResolverSystem{}
c.Resolver = &netxlite.ResolverSystem{}
return c, nil
case "https":
config.TLSConfig.NextProtos = []string{"h2", "http/1.1"}
Expand Down
56 changes: 16 additions & 40 deletions internal/engine/netx/netx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func TestNewResolverVanilla(t *testing.T) {
if !ok {
t.Fatal("not the resolver we expected")
}
_, ok = ar.Resolver.(netxlite.ResolverSystem)
_, ok = ar.Resolver.(*netxlite.ResolverSystem)
if !ok {
t.Fatal("not the resolver we expected")
}
Expand Down Expand Up @@ -82,7 +82,7 @@ func TestNewResolverWithBogonFilter(t *testing.T) {
if !ok {
t.Fatal("not the resolver we expected")
}
_, ok = ar.Resolver.(netxlite.ResolverSystem)
_, ok = ar.Resolver.(*netxlite.ResolverSystem)
if !ok {
t.Fatal("not the resolver we expected")
}
Expand All @@ -96,7 +96,7 @@ func TestNewResolverWithLogging(t *testing.T) {
if !ok {
t.Fatal("not the resolver we expected")
}
lr, ok := ir.Resolver.(netxlite.ResolverLogger)
lr, ok := ir.Resolver.(*netxlite.ResolverLogger)
if !ok {
t.Fatal("not the resolver we expected")
}
Expand All @@ -111,7 +111,7 @@ func TestNewResolverWithLogging(t *testing.T) {
if !ok {
t.Fatal("not the resolver we expected")
}
_, ok = ar.Resolver.(netxlite.ResolverSystem)
_, ok = ar.Resolver.(*netxlite.ResolverSystem)
if !ok {
t.Fatal("not the resolver we expected")
}
Expand Down Expand Up @@ -141,7 +141,7 @@ func TestNewResolverWithSaver(t *testing.T) {
if !ok {
t.Fatal("not the resolver we expected")
}
_, ok = ar.Resolver.(netxlite.ResolverSystem)
_, ok = ar.Resolver.(*netxlite.ResolverSystem)
if !ok {
t.Fatal("not the resolver we expected")
}
Expand Down Expand Up @@ -170,7 +170,7 @@ func TestNewResolverWithReadWriteCache(t *testing.T) {
if !ok {
t.Fatal("not the resolver we expected")
}
_, ok = ar.Resolver.(netxlite.ResolverSystem)
_, ok = ar.Resolver.(*netxlite.ResolverSystem)
if !ok {
t.Fatal("not the resolver we expected")
}
Expand Down Expand Up @@ -204,7 +204,7 @@ func TestNewResolverWithPrefilledReadonlyCache(t *testing.T) {
if !ok {
t.Fatal("not the resolver we expected")
}
_, ok = ar.Resolver.(netxlite.ResolverSystem)
_, ok = ar.Resolver.(*netxlite.ResolverSystem)
if !ok {
t.Fatal("not the resolver we expected")
}
Expand Down Expand Up @@ -235,11 +235,7 @@ func TestNewTLSDialerVanilla(t *testing.T) {
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
tth, ok := ewth.TLSHandshaker.(tlsdialer.TimeoutTLSHandshaker)
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
if _, ok := tth.TLSHandshaker.(tlsdialer.SystemTLSHandshaker); !ok {
if _, ok := ewth.TLSHandshaker.(*netxlite.TLSHandshakerStdlib); !ok {
t.Fatal("not the TLSHandshaker we expected")
}
}
Expand Down Expand Up @@ -268,11 +264,7 @@ func TestNewTLSDialerWithConfig(t *testing.T) {
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
tth, ok := ewth.TLSHandshaker.(tlsdialer.TimeoutTLSHandshaker)
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
if _, ok := tth.TLSHandshaker.(tlsdialer.SystemTLSHandshaker); !ok {
if _, ok := ewth.TLSHandshaker.(*netxlite.TLSHandshakerStdlib); !ok {
t.Fatal("not the TLSHandshaker we expected")
}
}
Expand Down Expand Up @@ -311,11 +303,7 @@ func TestNewTLSDialerWithLogging(t *testing.T) {
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
tth, ok := ewth.TLSHandshaker.(tlsdialer.TimeoutTLSHandshaker)
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
if _, ok := tth.TLSHandshaker.(tlsdialer.SystemTLSHandshaker); !ok {
if _, ok := ewth.TLSHandshaker.(*netxlite.TLSHandshakerStdlib); !ok {
t.Fatal("not the TLSHandshaker we expected")
}
}
Expand Down Expand Up @@ -355,11 +343,7 @@ func TestNewTLSDialerWithSaver(t *testing.T) {
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
tth, ok := ewth.TLSHandshaker.(tlsdialer.TimeoutTLSHandshaker)
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
if _, ok := tth.TLSHandshaker.(tlsdialer.SystemTLSHandshaker); !ok {
if _, ok := ewth.TLSHandshaker.(*netxlite.TLSHandshakerStdlib); !ok {
t.Fatal("not the TLSHandshaker we expected")
}
}
Expand Down Expand Up @@ -392,11 +376,7 @@ func TestNewTLSDialerWithNoTLSVerifyAndConfig(t *testing.T) {
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
tth, ok := ewth.TLSHandshaker.(tlsdialer.TimeoutTLSHandshaker)
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
if _, ok := tth.TLSHandshaker.(tlsdialer.SystemTLSHandshaker); !ok {
if _, ok := ewth.TLSHandshaker.(*netxlite.TLSHandshakerStdlib); !ok {
t.Fatal("not the TLSHandshaker we expected")
}
}
Expand Down Expand Up @@ -431,11 +411,7 @@ func TestNewTLSDialerWithNoTLSVerifyAndNoConfig(t *testing.T) {
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
tth, ok := ewth.TLSHandshaker.(tlsdialer.TimeoutTLSHandshaker)
if !ok {
t.Fatal("not the TLSHandshaker we expected")
}
if _, ok := tth.TLSHandshaker.(tlsdialer.SystemTLSHandshaker); !ok {
if _, ok := ewth.TLSHandshaker.(*netxlite.TLSHandshakerStdlib); !ok {
t.Fatal("not the TLSHandshaker we expected")
}
}
Expand Down Expand Up @@ -472,7 +448,7 @@ func TestNewWithTLSDialer(t *testing.T) {
tlsDialer := tlsdialer.TLSDialer{
Config: new(tls.Config),
Dialer: netx.FakeDialer{Err: expected},
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
}
txp := netx.NewHTTPTransport(netx.Config{
TLSDialer: tlsDialer,
Expand Down Expand Up @@ -598,7 +574,7 @@ func TestNewDNSClientSystemResolver(t *testing.T) {
if err != nil {
t.Fatal(err)
}
if _, ok := dnsclient.Resolver.(netxlite.ResolverSystem); !ok {
if _, ok := dnsclient.Resolver.(*netxlite.ResolverSystem); !ok {
t.Fatal("not the resolver we expected")
}
dnsclient.CloseIdleConnections()
Expand All @@ -610,7 +586,7 @@ func TestNewDNSClientEmpty(t *testing.T) {
if err != nil {
t.Fatal(err)
}
if _, ok := dnsclient.Resolver.(netxlite.ResolverSystem); !ok {
if _, ok := dnsclient.Resolver.(*netxlite.ResolverSystem); !ok {
t.Fatal("not the resolver we expected")
}
dnsclient.CloseIdleConnections()
Expand Down
2 changes: 1 addition & 1 deletion internal/engine/netx/resolver/chain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
func TestChainLookupHost(t *testing.T) {
r := resolver.ChainResolver{
Primary: resolver.NewFakeResolverThatFails(),
Secondary: netxlite.ResolverSystem{},
Secondary: &netxlite.ResolverSystem{},
}
if r.Address() != "" {
t.Fatal("invalid address")
Expand Down
6 changes: 3 additions & 3 deletions internal/engine/netx/resolver/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func testresolverquick(t *testing.T, reso resolver.Resolver) {
if testing.Short() {
t.Skip("skip test in short mode")
}
reso = netxlite.ResolverLogger{Logger: log.Log, Resolver: reso}
reso = &netxlite.ResolverLogger{Logger: log.Log, Resolver: reso}
addrs, err := reso.LookupHost(context.Background(), "dns.google.com")
if err != nil {
t.Fatal(err)
Expand All @@ -45,7 +45,7 @@ func testresolverquickidna(t *testing.T, reso resolver.Resolver) {
t.Skip("skip test in short mode")
}
reso = resolver.IDNAResolver{
netxlite.ResolverLogger{Logger: log.Log, Resolver: reso},
&netxlite.ResolverLogger{Logger: log.Log, Resolver: reso},
}
addrs, err := reso.LookupHost(context.Background(), "яндекс.рф")
if err != nil {
Expand All @@ -57,7 +57,7 @@ func testresolverquickidna(t *testing.T, reso resolver.Resolver) {
}

func TestNewResolverSystem(t *testing.T) {
reso := netxlite.ResolverSystem{}
reso := &netxlite.ResolverSystem{}
testresolverquick(t, reso)
testresolverquickidna(t, reso)
}
Expand Down
3 changes: 2 additions & 1 deletion internal/engine/netx/tlsdialer/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (

"github.com/apex/log"
"github.com/ooni/probe-cli/v3/internal/engine/netx/tlsdialer"
"github.com/ooni/probe-cli/v3/internal/netxlite"
)

func TestTLSDialerSuccess(t *testing.T) {
Expand All @@ -17,7 +18,7 @@ func TestTLSDialerSuccess(t *testing.T) {
log.SetLevel(log.DebugLevel)
dialer := tlsdialer.TLSDialer{Dialer: new(net.Dialer),
TLSHandshaker: tlsdialer.LoggingTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
Logger: log.Log,
},
}
Expand Down
13 changes: 7 additions & 6 deletions internal/engine/netx/tlsdialer/saver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/ooni/probe-cli/v3/internal/engine/netx/errorx"
"github.com/ooni/probe-cli/v3/internal/engine/netx/tlsdialer"
"github.com/ooni/probe-cli/v3/internal/engine/netx/trace"
"github.com/ooni/probe-cli/v3/internal/netxlite"
)

func TestSaverTLSHandshakerSuccessWithReadWrite(t *testing.T) {
Expand All @@ -25,7 +26,7 @@ func TestSaverTLSHandshakerSuccessWithReadWrite(t *testing.T) {
Config: &tls.Config{NextProtos: nextprotos},
Dialer: dialer.New(&dialer.Config{ReadWriteSaver: saver}, &net.Resolver{}),
TLSHandshaker: tlsdialer.SaverTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
Saver: saver,
},
}
Expand Down Expand Up @@ -118,7 +119,7 @@ func TestSaverTLSHandshakerSuccess(t *testing.T) {
Config: &tls.Config{NextProtos: nextprotos},
Dialer: new(net.Dialer),
TLSHandshaker: tlsdialer.SaverTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
Saver: saver,
},
}
Expand Down Expand Up @@ -183,7 +184,7 @@ func TestSaverTLSHandshakerHostnameError(t *testing.T) {
tlsdlr := tlsdialer.TLSDialer{
Dialer: new(net.Dialer),
TLSHandshaker: tlsdialer.SaverTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
Saver: saver,
},
}
Expand Down Expand Up @@ -216,7 +217,7 @@ func TestSaverTLSHandshakerInvalidCertError(t *testing.T) {
tlsdlr := tlsdialer.TLSDialer{
Dialer: new(net.Dialer),
TLSHandshaker: tlsdialer.SaverTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
Saver: saver,
},
}
Expand Down Expand Up @@ -249,7 +250,7 @@ func TestSaverTLSHandshakerAuthorityError(t *testing.T) {
tlsdlr := tlsdialer.TLSDialer{
Dialer: new(net.Dialer),
TLSHandshaker: tlsdialer.SaverTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
Saver: saver,
},
}
Expand Down Expand Up @@ -283,7 +284,7 @@ func TestSaverTLSHandshakerNoTLSVerify(t *testing.T) {
Config: &tls.Config{InsecureSkipVerify: true},
Dialer: new(net.Dialer),
TLSHandshaker: tlsdialer.SaverTLSHandshaker{
TLSHandshaker: tlsdialer.SystemTLSHandshaker{},
TLSHandshaker: &netxlite.TLSHandshakerStdlib{},
Saver: saver,
},
}
Expand Down

0 comments on commit f03eb64

Please sign in to comment.