Documentation ¶
Overview ¶
Package webconnectivityalgo contains Web Connectivity algorithms.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RandomDNSOverUDPResolverEndpointIPv4 ¶
func RandomDNSOverUDPResolverEndpointIPv4() string
RandomDNSOverUDPResolverEndpointIPv4 returns a random DNS-over-UDP resolver endpoint using IPv4.
Types ¶
type DNSWhoamiInfoEntry ¶
type DNSWhoamiInfoEntry struct { // Address is the IP address used by the resolver. Address string `json:"address"` }
DNSWhoamiInfoEntry contains an entry for DNSWhoamiInfo.
type DNSWhoamiService ¶
type DNSWhoamiService struct {
// contains filtered or unexported fields
}
DNSWhoamiService is a service that performs DNS whoami lookups.
The zero value of this struct is invalid. Please, construct using the NewDNSWhoamiService factory function.
func NewDNSWhoamiService ¶
func NewDNSWhoamiService(logger model.Logger) *DNSWhoamiService
NewDNSWhoamiService constructs a new *DNSWhoamiService.
func (*DNSWhoamiService) SystemV4 ¶
func (svc *DNSWhoamiService) SystemV4(ctx context.Context) ([]DNSWhoamiInfoEntry, bool)
SystemV4 returns the results of querying using the system resolver and IPv4.
func (*DNSWhoamiService) UDPv4 ¶
func (svc *DNSWhoamiService) UDPv4(ctx context.Context, address string) ([]DNSWhoamiInfoEntry, bool)
UDPv4 returns the results of querying a given UDP resolver and IPv4.
type OpportunisticDNSOverHTTPSURLProvider ¶
type OpportunisticDNSOverHTTPSURLProvider struct {
// contains filtered or unexported fields
}
OpportunisticDNSOverHTTPSURLProvider allows to perform opportunistic DNS-over-HTTPS measurements as part of Web Connectivity LTE. The zero value of this struct is not valid, please use NewOpportunisticDNSOverHTTPSURLProvider to construct.
Implementation note: this code uses memory to keep track of the resolvers and know when to perform the next opportunistic check. It seems pointless to use the disk since invocations of Web Connectivity typically consist of multiple URLs and therefore run for a few minutes. Hence, storing state on disk seems a bit overkill here.
func NewOpportunisticDNSOverHTTPSURLProvider ¶
func NewOpportunisticDNSOverHTTPSURLProvider(urls ...string) *OpportunisticDNSOverHTTPSURLProvider
NewOpportunisticDNSOverHTTPSURLProvider creates a new *OpportunisticDNSOverHTTPSURLProvider.
func (*OpportunisticDNSOverHTTPSURLProvider) MaybeNextURL ¶
func (o *OpportunisticDNSOverHTTPSURLProvider) MaybeNextURL() (string, bool)
MaybeNextURL returns the next URL to measure, if any. Our aim is to perform periodic, opportunistic DoH measurements as part of Web Connectivity.