doc: add tutorial on how to use netxlite (#519)
The main tutorial will be the one at https://github.com/ooni/probe-cli/pull/506, but it's useful to also document the primitives used by measurex. So, here's the companion tutorial, which explains how to use the features in netxlite to perform measurements. This work is part of https://github.com/ooni/ooni.org/issues/361.
This commit is contained in:
@@ -45,6 +45,15 @@ func NewResolverStdlib(logger Logger) Resolver {
|
||||
return WrapResolver(logger, &resolverSystem{})
|
||||
}
|
||||
|
||||
// NewResolverUDP creates a new Resolver by combining
|
||||
// WrapResolver with a SerialResolver attached to
|
||||
// a DNSOverUDP transport.
|
||||
func NewResolverUDP(logger Logger, dialer Dialer, address string) Resolver {
|
||||
return WrapResolver(logger, NewSerialResolver(
|
||||
NewDNSOverUDP(dialer, address),
|
||||
))
|
||||
}
|
||||
|
||||
// WrapResolver creates a new resolver that wraps an
|
||||
// existing resolver to add these properties:
|
||||
//
|
||||
|
||||
@@ -26,6 +26,23 @@ func TestNewResolverSystem(t *testing.T) {
|
||||
_ = errWrapper.Resolver.(*resolverSystem)
|
||||
}
|
||||
|
||||
func TestNewResolverUDP(t *testing.T) {
|
||||
d := NewDialerWithoutResolver(log.Log)
|
||||
resolver := NewResolverUDP(log.Log, d, "1.1.1.1:53")
|
||||
idna := resolver.(*resolverIDNA)
|
||||
logger := idna.Resolver.(*resolverLogger)
|
||||
if logger.Logger != log.Log {
|
||||
t.Fatal("invalid logger")
|
||||
}
|
||||
shortCircuit := logger.Resolver.(*resolverShortCircuitIPAddr)
|
||||
errWrapper := shortCircuit.Resolver.(*resolverErrWrapper)
|
||||
serio := errWrapper.Resolver.(*SerialResolver)
|
||||
txp := serio.Transport().(*DNSOverUDP)
|
||||
if txp.Address() != "1.1.1.1:53" {
|
||||
t.Fatal("invalid address")
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolverSystem(t *testing.T) {
|
||||
t.Run("Network and Address", func(t *testing.T) {
|
||||
r := &resolverSystem{}
|
||||
|
||||
Reference in New Issue
Block a user