feat: tlsmiddlebox experiment (#817)

See https://github.com/ooni/probe/issues/2124
This commit is contained in:
DecFox 2022-09-08 21:01:03 +05:30 committed by GitHub
commit f2b88ddb4a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 1670 additions and 0 deletions

View file

@ -0,0 +1,27 @@
package tlsmiddlebox
//
// TCP Connect for tlsmiddlebox
//
import (
"context"
"time"
"github.com/ooni/probe-cli/v3/internal/measurexlite"
"github.com/ooni/probe-cli/v3/internal/model"
)
// TCPConnect performs a TCP connect to filter working addresses
func (m *Measurer) TCPConnect(ctx context.Context, index int64, zeroTime time.Time,
logger model.Logger, address string, tk *TestKeys) error {
trace := measurexlite.NewTrace(index, zeroTime)
dialer := trace.NewDialerWithoutResolver(logger)
ol := measurexlite.NewOperationLogger(logger, "TCPConnect #%d %s", index, address)
conn, err := dialer.DialContext(ctx, "tcp", address)
ol.Stop(err)
measurexlite.MaybeClose(conn)
tcpEvents := trace.TCPConnects()
tk.addTCPConnect(tcpEvents)
return err
}