refactor(netx/dialer): hide implementation complexity (#372)
* refactor(netx/dialer): hide implementation complexity This follows the blueprint of `module.Config` and `nodule.New` described at https://github.com/ooni/probe/issues/1591. * fix: ndt7 bug where we were not using the right resolver * fix(legacy/netx): clarify irrelevant implementation change * fix: improve comments * fix(hhfm): do not use dialer.New b/c it breaks it Unclear to me why this is happening. Still, improve upon the previous situation by adding a timeout. It does not seem a priority to look into this issue now.
This commit is contained in:
parent
b7a6dbe47b
commit
06ee0e55a9
30 changed files with 312 additions and 517 deletions
|
|
@ -9,14 +9,14 @@ import (
|
|||
"github.com/ooni/probe-cli/v3/internal/engine/netx/trace"
|
||||
)
|
||||
|
||||
// SaverDialer saves events occurring during the dial
|
||||
type SaverDialer struct {
|
||||
// saverDialer saves events occurring during the dial
|
||||
type saverDialer struct {
|
||||
Dialer
|
||||
Saver *trace.Saver
|
||||
}
|
||||
|
||||
// DialContext implements Dialer.DialContext
|
||||
func (d SaverDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
|
||||
func (d *saverDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
|
||||
start := time.Now()
|
||||
conn, err := d.Dialer.DialContext(ctx, network, address)
|
||||
stop := time.Now()
|
||||
|
|
@ -31,20 +31,20 @@ func (d SaverDialer) DialContext(ctx context.Context, network, address string) (
|
|||
return conn, err
|
||||
}
|
||||
|
||||
// SaverConnDialer wraps the returned connection such that we
|
||||
// saverConnDialer wraps the returned connection such that we
|
||||
// collect all the read/write events that occur.
|
||||
type SaverConnDialer struct {
|
||||
type saverConnDialer struct {
|
||||
Dialer
|
||||
Saver *trace.Saver
|
||||
}
|
||||
|
||||
// DialContext implements Dialer.DialContext
|
||||
func (d SaverConnDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
|
||||
func (d *saverConnDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
|
||||
conn, err := d.Dialer.DialContext(ctx, network, address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return saverConn{saver: d.Saver, Conn: conn}, nil
|
||||
return &saverConn{saver: d.Saver, Conn: conn}, nil
|
||||
}
|
||||
|
||||
type saverConn struct {
|
||||
|
|
@ -52,7 +52,7 @@ type saverConn struct {
|
|||
saver *trace.Saver
|
||||
}
|
||||
|
||||
func (c saverConn) Read(p []byte) (int, error) {
|
||||
func (c *saverConn) Read(p []byte) (int, error) {
|
||||
start := time.Now()
|
||||
count, err := c.Conn.Read(p)
|
||||
stop := time.Now()
|
||||
|
|
@ -67,7 +67,7 @@ func (c saverConn) Read(p []byte) (int, error) {
|
|||
return count, err
|
||||
}
|
||||
|
||||
func (c saverConn) Write(p []byte) (int, error) {
|
||||
func (c *saverConn) Write(p []byte) (int, error) {
|
||||
start := time.Now()
|
||||
count, err := c.Conn.Write(p)
|
||||
stop := time.Now()
|
||||
|
|
@ -82,5 +82,6 @@ func (c saverConn) Write(p []byte) (int, error) {
|
|||
return count, err
|
||||
}
|
||||
|
||||
var _ Dialer = SaverDialer{}
|
||||
var _ net.Conn = saverConn{}
|
||||
var _ Dialer = &saverDialer{}
|
||||
var _ Dialer = &saverConnDialer{}
|
||||
var _ net.Conn = &saverConn{}
|
||||
|
|
|
|||
Loading…
Reference in a new issue