1fefe5d9b8
* make errorx classifier less dependent on strings * adapt errorx tests * added syserror comment * localized classification of quic errors * localized classification of resolver errors * (fix) move "no such host" error to global classifier * moved x509 errors to local TLS error classifier * added qtls error classification for quicdialer * add Classifier to SafeErrWrapperBuilder * windows/unix specific files for errno constants * added errno ETIMEDOUT, tests * added TLS alert constants * added FailureSSLHandshake test, improved switch style * added more network based system error constants for future use * (fix) import style * (fix) errorx typos/style * (fix) robustness of SafeErrWrapperBuilder, added comments * (fix) reversed unnecessary changes, added comments * (fix) style and updated comment * errorx: added future re-structuring comment * (fix) typo TLS alert code 51 * added comment * alert mapping: added comment * Update errorx.go * Update internal/engine/netx/errorx/errorx.go Co-authored-by: Simone Basso <bassosimone@gmail.com>
32 lines
920 B
Go
32 lines
920 B
Go
package resolver
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/ooni/probe-cli/v3/internal/engine/legacy/netx/dialid"
|
|
"github.com/ooni/probe-cli/v3/internal/engine/legacy/netx/transactionid"
|
|
"github.com/ooni/probe-cli/v3/internal/engine/netx/errorx"
|
|
)
|
|
|
|
// ErrorWrapperResolver is a Resolver that knows about wrapping errors.
|
|
type ErrorWrapperResolver struct {
|
|
Resolver
|
|
}
|
|
|
|
// LookupHost implements Resolver.LookupHost
|
|
func (r ErrorWrapperResolver) LookupHost(ctx context.Context, hostname string) ([]string, error) {
|
|
dialID := dialid.ContextDialID(ctx)
|
|
txID := transactionid.ContextTransactionID(ctx)
|
|
addrs, err := r.Resolver.LookupHost(ctx, hostname)
|
|
err = errorx.SafeErrWrapperBuilder{
|
|
Classifier: errorx.ClassifyResolveFailure,
|
|
DialID: dialID,
|
|
Error: err,
|
|
Operation: errorx.ResolveOperation,
|
|
TransactionID: txID,
|
|
}.MaybeBuild()
|
|
return addrs, err
|
|
}
|
|
|
|
var _ Resolver = ErrorWrapperResolver{}
|