Skip to content

Commit ac81ada

Browse files
committed
refactor(netxlite): use *Netx for creating HTTP transports
This diff is like 50279a7 but uses *Netx to create HTTP transports. The general idea of this patchset is to ensure we're not using duplicate code for constructing netxlite types, which is good to do now, because we're about to introduce new netxlite types for the network with which we communicate with the OONI backend. Reference issue: ooni/probe#2531
1 parent f36432c commit ac81ada

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

internal/netxlite/http.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -342,12 +342,19 @@ func (c *httpTLSConnWithReadTimeout) Read(b []byte) (int, error) {
342342
//
343343
// This factory and NewHTTPTransport are the recommended
344344
// ways of creating a new HTTPTransport.
345-
func NewHTTPTransportStdlib(logger model.DebugLogger) model.HTTPTransport {
346-
dialer := NewDialerWithResolver(logger, NewStdlibResolver(logger))
347-
tlsDialer := NewTLSDialer(dialer, NewTLSHandshakerStdlib(logger))
345+
func (netx *Netx) NewHTTPTransportStdlib(logger model.DebugLogger) model.HTTPTransport {
346+
dialer := netx.NewDialerWithResolver(logger, netx.NewStdlibResolver(logger))
347+
tlsDialer := NewTLSDialer(dialer, netx.NewTLSHandshakerStdlib(logger))
348348
return NewHTTPTransport(logger, dialer, tlsDialer)
349349
}
350350

351+
// NewHTTPTransportStdlib is equivalent to creating an empty [*Netx]
352+
// and calling its NewHTTPTransportStdlib method.
353+
func NewHTTPTransportStdlib(logger model.DebugLogger) model.HTTPTransport {
354+
netx := &Netx{Underlying: nil}
355+
return netx.NewHTTPTransportStdlib(logger)
356+
}
357+
351358
// NewHTTPClientStdlib creates a new HTTPClient that uses the
352359
// standard library for TLS and DNS resolutions.
353360
func NewHTTPClientStdlib(logger model.DebugLogger) model.HTTPClient {

internal/netxlite/netx.go

-8
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,6 @@ func (netx *Netx) maybeCustomUnderlyingNetwork() *MaybeCustomUnderlyingNetwork {
2222
return &MaybeCustomUnderlyingNetwork{netx.Underlying}
2323
}
2424

25-
// NewHTTPTransportStdlib is like [netxlite.NewHTTPTransportStdlib] but the constructed [model.HTTPTransport]
26-
// uses the [model.UnderlyingNetwork] configured inside the [Netx] structure.
27-
func (n *Netx) NewHTTPTransportStdlib(logger model.DebugLogger) model.HTTPTransport {
28-
dialer := n.NewDialerWithResolver(logger, n.NewStdlibResolver(logger))
29-
tlsDialer := NewTLSDialer(dialer, n.NewTLSHandshakerStdlib(logger))
30-
return NewHTTPTransport(logger, dialer, tlsDialer)
31-
}
32-
3325
// NewHTTP3TransportStdlib is like [netxlite.NewHTTP3TransportStdlib] but the constructed [model.HTTPTransport]
3426
// uses the [model.UnderlyingNetwork] configured inside the [Netx] structure.
3527
func (n *Netx) NewHTTP3TransportStdlib(logger model.DebugLogger) model.HTTPTransport {

0 commit comments

Comments
 (0)