Documentation ¶
Overview ¶
Package whatsapp contains the WhatsApp network experiment.
See https://github.com/ooni/spec/blob/master/nettests/ts-018-whatsapp.md.
Index ¶
Constants ¶
const ( // RegistrationServiceURL is the URL used by WhatsApp registration service RegistrationServiceURL = "https://v.whatsapp.net/v2/register" // WebHTTPURL is WhatsApp web's HTTP URL WebHTTPURL = "http://web.whatsapp.com/" // WebHTTPSURL is WhatsApp web's HTTPS URL WebHTTPSURL = "https://web.whatsapp.com/" )
Variables ¶
This section is empty.
Functions ¶
func NewExperimentMeasurer ¶
func NewExperimentMeasurer(config Config) model.ExperimentMeasurer
NewExperimentMeasurer creates a new ExperimentMeasurer.
Types ¶
type Measurer ¶
type Measurer struct { // Config contains the experiment settings. If empty we // will be using default settings. Config Config // Getter is an optional getter to be used for testing. Getter urlgetter.MultiGetter }
Measurer performs the measurement
func (Measurer) ExperimentName ¶
ExperimentName implements ExperimentMeasurer.ExperimentName
func (Measurer) ExperimentVersion ¶
ExperimentVersion implements ExperimentMeasurer.ExperimentVersion
func (Measurer) GetSummaryKeys ¶
func (m Measurer) GetSummaryKeys(measurement *model.Measurement) (interface{}, error)
GetSummaryKeys implements model.ExperimentMeasurer.GetSummaryKeys.
func (Measurer) Run ¶
func (m Measurer) Run( ctx context.Context, sess model.ExperimentSession, measurement *model.Measurement, callbacks model.ExperimentCallbacks, ) error
Run implements ExperimentMeasurer.Run
type SummaryKeys ¶
type SummaryKeys struct { RegistrationServerBlocking bool `json:"registration_server_blocking"` WebBlocking bool `json:"whatsapp_web_blocking"` EndpointsBlocking bool `json:"whatsapp_endpoints_blocking"` IsAnomaly bool `json:"-"` }
SummaryKeys contains summary keys for this experiment.
Note that this structure is part of the ABI contract with ooniprobe therefore we should be careful when changing it.
type TestKeys ¶
type TestKeys struct { urlgetter.TestKeys RegistrationServerFailure *string `json:"registration_server_failure"` RegistrationServerStatus string `json:"registration_server_status"` WhatsappEndpointsBlocked []string `json:"whatsapp_endpoints_blocked"` WhatsappEndpointsDNSInconsistent []string `json:"whatsapp_endpoints_dns_inconsistent"` WhatsappEndpointsStatus string `json:"whatsapp_endpoints_status"` WhatsappWebFailure *string `json:"whatsapp_web_failure"` WhatsappWebStatus string `json:"whatsapp_web_status"` WhatsappEndpointsCount map[string]int `json:"-"` WhatsappHTTPFailure *string `json:"-"` WhatsappHTTPSFailure *string `json:"-"` }
TestKeys contains the experiment results
func NewTestKeys ¶
func NewTestKeys() *TestKeys
NewTestKeys returns a new instance of the test keys.
func (*TestKeys) ComputeWebStatus ¶
func (tk *TestKeys) ComputeWebStatus()
ComputeWebStatus sets the web status fields.
func (*TestKeys) Update ¶
func (tk *TestKeys) Update(v urlgetter.MultiOutput)
Update updates the TestKeys using the given MultiOutput result.