080abf90d9
* feat(dnsovergetaddrinfo): collect the CNAME This diff modifies how dnsovergetaddrinfo.go works such that the returned DNSResponse includes the CNAME. Closes https://github.com/ooni/probe/issues/2226. While there, recognize that we can remove getaddrinfoLookupHost and always call getaddrinfoLookupANY everywhere. (This simplification is why we did https://github.com/ooni/probe-cli/pull/874.) * fix: extra debugging because of failing CI Everything is OK locally (on macOS). However, maybe things are a bit different on GNU/Linux perhaps? Here's the error: ``` --- FAIL: TestPass (0.11s) resolver_test.go:113: unexpected rcode FAIL coverage: 95.7% of statements FAIL github.com/ooni/probe-cli/v3/internal/cmd/jafar/resolver 0.242s ``` I'm a bit confused because jafar's resolver is _unrelated_. But actually this error never occurred again after a committed the debugging diff.
42 lines
1000 B
Go
42 lines
1000 B
Go
package netxlite
|
|
|
|
import "errors"
|
|
|
|
// ErrGetaddrinfo represents a getaddrinfo failure.
|
|
type ErrGetaddrinfo struct {
|
|
// Err is the error proper.
|
|
Underlying error
|
|
|
|
// Code is getaddrinfo's return code.
|
|
Code int64
|
|
}
|
|
|
|
// newErrGetaddrinfo creates a new instance of the ErrGetaddrinfo type.
|
|
func newErrGetaddrinfo(code int64, err error) *ErrGetaddrinfo {
|
|
return &ErrGetaddrinfo{
|
|
Underlying: err,
|
|
Code: code,
|
|
}
|
|
}
|
|
|
|
// Error returns the underlying error's string.
|
|
func (err *ErrGetaddrinfo) Error() string {
|
|
return err.Underlying.Error()
|
|
}
|
|
|
|
// Unwrap allows to get the underlying error value.
|
|
func (err *ErrGetaddrinfo) Unwrap() error {
|
|
return err.Underlying
|
|
}
|
|
|
|
// ErrorToGetaddrinfoRetval converts an arbitrary error to
|
|
// the return value of getaddrinfo. If err is nil or is not
|
|
// an instance of ErrGetaddrinfo, we just return zero.
|
|
func ErrorToGetaddrinfoRetval(err error) int64 {
|
|
var aierr *ErrGetaddrinfo
|
|
if err != nil && errors.As(err, &aierr) {
|
|
return aierr.Code
|
|
}
|
|
return 0
|
|
}
|