5501b2201a
Reference issue for this pull request: https://github.com/ooni/probe/issues/2159 This diff refactors the `dnsping` experiment to use the [step-by-step measurement style](https://github.com/ooni/probe-cli/blob/master/docs/design/dd-003-step-by-step.md). Co-authored-by: decfox <decfox@github.com> Co-authored-by: Simone Basso <bassosimone@gmail.com>
36 lines
700 B
Go
36 lines
700 B
Go
package dnsping
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/ooni/probe-cli/v3/internal/model"
|
|
)
|
|
|
|
// TestKeys contains the experiment results.
|
|
type TestKeys struct {
|
|
Pings []*SinglePing `json:"pings"`
|
|
|
|
// mu provides mutual exclusion
|
|
mu sync.Mutex
|
|
}
|
|
|
|
// SinglePing contains the results of a single ping.
|
|
type SinglePing struct {
|
|
Query *model.ArchivalDNSLookupResult `json:"query"`
|
|
}
|
|
|
|
// NewTestKeys creates new dnsping TestKeys
|
|
func NewTestKeys() *TestKeys {
|
|
return &TestKeys{
|
|
Pings: []*SinglePing{},
|
|
mu: sync.Mutex{},
|
|
}
|
|
}
|
|
|
|
// addSinglePing adds []*SinglePing to the test keys
|
|
func (tk *TestKeys) addPings(pings []*SinglePing) {
|
|
tk.mu.Lock()
|
|
tk.Pings = append(tk.Pings, pings...)
|
|
tk.mu.Unlock()
|
|
}
|