refactor(netxlite): introduce the getaddrinfo transport (#775)
This diff modifies the system resolver to use a getaddrinf transport. Obviously the transport is a fake, but its existence will allow us to observe DNS events more naturally. A lookup using the system resolver would be a ANY lookup that will contain all the resolved IP addresses into the same response. This change was also part of websteps-illustrated, albeit the way in which I did it there was less clean than what we have here. Ref issue: https://github.com/ooni/probe/issues/2096
This commit is contained in:
parent
7e0b47311d
commit
923d81cdee
14 changed files with 432 additions and 163 deletions
|
|
@ -10,32 +10,33 @@ package netxlite
|
|||
var (
|
||||
DefaultDialer = &DialerSystem{}
|
||||
DefaultTLSHandshaker = defaultTLSHandshaker
|
||||
NewResolverSystem = newResolverSystem
|
||||
NewConnUTLS = newConnUTLS
|
||||
DefaultResolver = &resolverSystem{}
|
||||
DefaultResolver = newResolverSystem()
|
||||
)
|
||||
|
||||
// These types export internal names to legacy ooni/probe-cli code.
|
||||
//
|
||||
// Deprecated: do not use these names in new code.
|
||||
type (
|
||||
DialerResolver = dialerResolver
|
||||
DialerLogger = dialerLogger
|
||||
HTTPTransportWrapper = httpTransportConnectionsCloser
|
||||
HTTPTransportLogger = httpTransportLogger
|
||||
ErrorWrapperDialer = dialerErrWrapper
|
||||
ErrorWrapperQUICListener = quicListenerErrWrapper
|
||||
ErrorWrapperQUICDialer = quicDialerErrWrapper
|
||||
ErrorWrapperResolver = resolverErrWrapper
|
||||
ErrorWrapperTLSHandshaker = tlsHandshakerErrWrapper
|
||||
QUICListenerStdlib = quicListenerStdlib
|
||||
QUICDialerQUICGo = quicDialerQUICGo
|
||||
QUICDialerResolver = quicDialerResolver
|
||||
QUICDialerLogger = quicDialerLogger
|
||||
ResolverSystem = resolverSystem
|
||||
ResolverLogger = resolverLogger
|
||||
ResolverIDNA = resolverIDNA
|
||||
TLSHandshakerConfigurable = tlsHandshakerConfigurable
|
||||
TLSHandshakerLogger = tlsHandshakerLogger
|
||||
TLSDialerLegacy = tlsDialer
|
||||
AddressResolver = resolverShortCircuitIPAddr
|
||||
DialerResolver = dialerResolver
|
||||
DialerLogger = dialerLogger
|
||||
HTTPTransportWrapper = httpTransportConnectionsCloser
|
||||
HTTPTransportLogger = httpTransportLogger
|
||||
ErrorWrapperDialer = dialerErrWrapper
|
||||
ErrorWrapperQUICListener = quicListenerErrWrapper
|
||||
ErrorWrapperQUICDialer = quicDialerErrWrapper
|
||||
ErrorWrapperResolver = resolverErrWrapper
|
||||
ErrorWrapperTLSHandshaker = tlsHandshakerErrWrapper
|
||||
QUICListenerStdlib = quicListenerStdlib
|
||||
QUICDialerQUICGo = quicDialerQUICGo
|
||||
QUICDialerResolver = quicDialerResolver
|
||||
QUICDialerLogger = quicDialerLogger
|
||||
ResolverSystemDoNotInstantiate = resolverSystem // instantiate => crash w/ nil transport
|
||||
ResolverLogger = resolverLogger
|
||||
ResolverIDNA = resolverIDNA
|
||||
TLSHandshakerConfigurable = tlsHandshakerConfigurable
|
||||
TLSHandshakerLogger = tlsHandshakerLogger
|
||||
TLSDialerLegacy = tlsDialer
|
||||
AddressResolver = resolverShortCircuitIPAddr
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue