feat(webconnectivity@v0.5): get a webpage whenever possible (#950)
Implements https://github.com/ooni/probe/issues/2276 and supersedes https://github.com/ooni/probe-cli/pull/949.
This commit is contained in:
parent
6b8b13344a
commit
5e75512396
8 changed files with 344 additions and 84 deletions
|
|
@ -65,6 +65,10 @@ type TestKeys struct {
|
|||
// Control contains the TH's response.
|
||||
Control *webconnectivity.ControlResponse `json:"control"`
|
||||
|
||||
// ConnPriorityLog explains why Web Connectivity chose to use a given
|
||||
// ready-to-use HTTP(S) connection among many.
|
||||
ConnPriorityLog []*ConnPriorityLogEntry `json:"x_conn_priority_log"`
|
||||
|
||||
// ControlFailure contains the failure of the control experiment.
|
||||
ControlFailure *string `json:"control_failure"`
|
||||
|
||||
|
|
@ -128,6 +132,15 @@ type TestKeys struct {
|
|||
mu *sync.Mutex
|
||||
}
|
||||
|
||||
// ConnPriorityLogEntry is an entry in the TestKeys.ConnPriorityLog slice.
|
||||
type ConnPriorityLogEntry struct {
|
||||
// Msg is the specific log entry
|
||||
Msg string `json:"msg"`
|
||||
|
||||
// T is when this entry was generated
|
||||
T float64 `json:"t"`
|
||||
}
|
||||
|
||||
// DNSWhoamiInfoEntry contains an entry for DNSWhoamiInfo.
|
||||
type DNSWhoamiInfoEntry struct {
|
||||
// Address is the IP address
|
||||
|
|
@ -278,6 +291,13 @@ func (tk *TestKeys) SetClientResolver(value string) {
|
|||
tk.mu.Unlock()
|
||||
}
|
||||
|
||||
// AppendConnPriorityLogEntry appends an entry to ConnPriorityLog.
|
||||
func (tk *TestKeys) AppendConnPriorityLogEntry(entry *ConnPriorityLogEntry) {
|
||||
tk.mu.Lock()
|
||||
tk.ConnPriorityLog = append(tk.ConnPriorityLog, entry)
|
||||
tk.mu.Unlock()
|
||||
}
|
||||
|
||||
// NewTestKeys creates a new instance of TestKeys.
|
||||
func NewTestKeys() *TestKeys {
|
||||
return &TestKeys{
|
||||
|
|
@ -307,6 +327,7 @@ func NewTestKeys() *TestKeys {
|
|||
TCPConnect: []*model.ArchivalTCPConnectResult{},
|
||||
TLSHandshakes: []*model.ArchivalTLSOrQUICHandshakeResult{},
|
||||
Control: nil,
|
||||
ConnPriorityLog: []*ConnPriorityLogEntry{},
|
||||
ControlFailure: nil,
|
||||
DNSFlags: 0,
|
||||
DNSExperimentFailure: nil,
|
||||
|
|
|
|||
Loading…
Reference in a new issue