refactor: move TH structs and definitions to model (#894)
This commit moves the TH structs and definitions to model. We don't want oohelperd to depend on web_connectivity@v0.4. Part of https://github.com/ooni/probe/issues/2240
This commit is contained in:
parent
110a11828b
commit
bb6563f363
12 changed files with 161 additions and 157 deletions
|
|
@ -10,34 +10,34 @@ import (
|
|||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/ooni/probe-cli/v3/internal/engine/experiment/webconnectivity"
|
||||
"github.com/ooni/probe-cli/v3/internal/geoipx"
|
||||
"github.com/ooni/probe-cli/v3/internal/model"
|
||||
"github.com/ooni/probe-cli/v3/internal/netxlite"
|
||||
)
|
||||
|
||||
// newIPInfo creates an IP to IPInfo mapping from addresses resolved
|
||||
// by the probe (inside [creq]) or the TH (inside [addrs]).
|
||||
func newIPInfo(creq *ctrlRequest, addrs []string) map[string]*webconnectivity.ControlIPInfo {
|
||||
func newIPInfo(creq *ctrlRequest, addrs []string) map[string]*model.THIPInfo {
|
||||
discoveredby := make(map[string]int64)
|
||||
for _, epnt := range creq.TCPConnect {
|
||||
addr, _, err := net.SplitHostPort(epnt)
|
||||
if err != nil || net.ParseIP(addr) == nil {
|
||||
continue
|
||||
}
|
||||
discoveredby[addr] |= webconnectivity.ControlIPInfoFlagResolvedByProbe
|
||||
discoveredby[addr] |= model.THIPInfoFlagResolvedByProbe
|
||||
}
|
||||
for _, addr := range addrs {
|
||||
if net.ParseIP(addr) != nil {
|
||||
discoveredby[addr] |= webconnectivity.ControlIPInfoFlagResolvedByTH
|
||||
discoveredby[addr] |= model.THIPInfoFlagResolvedByTH
|
||||
}
|
||||
}
|
||||
ipinfo := make(map[string]*webconnectivity.ControlIPInfo)
|
||||
ipinfo := make(map[string]*model.THIPInfo)
|
||||
for addr, flags := range discoveredby {
|
||||
if netxlite.IsBogon(addr) { // note: we already excluded non-IP addrs above
|
||||
flags |= webconnectivity.ControlIPInfoFlagIsBogon
|
||||
flags |= model.THIPInfoFlagIsBogon
|
||||
}
|
||||
asn, _, _ := geoipx.LookupASN(addr) // AS0 on failure
|
||||
ipinfo[addr] = &webconnectivity.ControlIPInfo{
|
||||
ipinfo[addr] = &model.THIPInfo{
|
||||
ASN: int64(asn),
|
||||
Flags: flags,
|
||||
}
|
||||
|
|
@ -70,7 +70,7 @@ type endpointInfo struct {
|
|||
// whether an IP address is valid for a domain;
|
||||
//
|
||||
// 4. otherwise, we don't generate any endpoint to measure.
|
||||
func ipInfoToEndpoints(URL *url.URL, ipinfo map[string]*webconnectivity.ControlIPInfo) []endpointInfo {
|
||||
func ipInfoToEndpoints(URL *url.URL, ipinfo map[string]*model.THIPInfo) []endpointInfo {
|
||||
var ports []string
|
||||
if port := URL.Port(); port != "" {
|
||||
ports = []string{port} // as documented
|
||||
|
|
@ -81,7 +81,7 @@ func ipInfoToEndpoints(URL *url.URL, ipinfo map[string]*webconnectivity.ControlI
|
|||
}
|
||||
out := []endpointInfo{}
|
||||
for addr, info := range ipinfo {
|
||||
if (info.Flags & webconnectivity.ControlIPInfoFlagIsBogon) != 0 {
|
||||
if (info.Flags & model.THIPInfoFlagIsBogon) != 0 {
|
||||
continue // as documented
|
||||
}
|
||||
for _, port := range ports {
|
||||
|
|
|
|||
Loading…
Reference in a new issue