refactor(oohelperd): flatten package hierarchy (#834)

In https://github.com/ooni/probe-cli/pull/832's initial diff, I
mentioned it would be cool to flatten oohelperd's hier.

I'm doing this now, and just for the master branch.

This diff is mostly a mechanical refactoring with very light
and apparently rather safe manual changes.
This commit is contained in:
Simone Basso 2022-07-05 19:10:39 +02:00 committed by GitHub
commit 535a5d3e00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 151 additions and 98 deletions

View file

@ -1,71 +0,0 @@
package webconnectivity
import (
"context"
"sync"
"github.com/ooni/probe-cli/v3/internal/engine/experiment/webconnectivity"
"github.com/ooni/probe-cli/v3/internal/model"
"github.com/ooni/probe-cli/v3/internal/netxlite"
)
// CtrlTCPResult is the result of the TCP check performed by the test helper.
type CtrlTCPResult = webconnectivity.ControlTCPConnectResult
// TCPResultPair contains the endpoint and the corresponding result.
type TCPResultPair struct {
Endpoint string
Result CtrlTCPResult
}
// TCPConfig configures the TCP connect check.
type TCPConfig struct {
Endpoint string
NewDialer func() model.Dialer
Out chan TCPResultPair
Wg *sync.WaitGroup
}
// TCPDo performs the TCP check.
func TCPDo(ctx context.Context, config *TCPConfig) {
defer config.Wg.Done()
dialer := config.NewDialer()
defer dialer.CloseIdleConnections()
conn, err := dialer.DialContext(ctx, "tcp", config.Endpoint)
if conn != nil {
conn.Close()
}
config.Out <- TCPResultPair{
Endpoint: config.Endpoint,
Result: CtrlTCPResult{
Failure: tcpMapFailure(newfailure(err)),
Status: err == nil,
},
}
}
// tcpMapFailure attempts to map netxlite failures to the strings
// used by the original OONI test helper.
//
// See https://github.com/ooni/backend/blob/6ec4fda5b18/oonib/testhelpers/http_helpers.py#L392
func tcpMapFailure(failure *string) *string {
switch failure {
case nil:
return nil
default:
switch *failure {
case netxlite.FailureGenericTimeoutError:
return failure // already using the same name
case netxlite.FailureConnectionRefused:
s := "connection_refused_error"
return &s
default:
// The definition of this error according to Twisted is
// "something went wrong when connecting". Because we are
// indeed basically just connecting here, it seems safe
// to map any other error to "connect_error" here.
s := "connect_error"
return &s
}
}
}