Here's the squash of the following patches that enable support
for go1.18 and update our dependencies.
This diff WILL need to be backported to the release/3.14 branch.
* chore: use go1.17.8
See https://github.com/ooni/probe/issues/2067
* chore: upgrade to probe-assets@v0.8.0
See https://github.com/ooni/probe/issues/2067.
* chore: update dependencies and enable go1.18
As mentioned in 7a0d17ea91,
the tree won't build with `go1.18` unless we say it does.
So, not only here we need to update dependencies but also we
need to explicitly say `go1.18` in the `go.mod`.
This work is part of https://github.com/ooni/probe/issues/2067.
* chore(coverage.yml): run with go1.18
This change will give us a bare minimum confidence that we're
going to build our tree using version 1.18 of golang.
See https://github.com/ooni/probe/issues/2067.
* chore: update user agent used for measuring
See https://github.com/ooni/probe/issues/2067
* chore: run `go generate ./...`
See https://github.com/ooni/probe/issues/2067
* fix(dialer_test.go): make test work with go1.17 and go1.18
1. the original test wanted the dial to fail, so ensure we're not
passing any domain name to exercise dialing not resolving;
2. match the end of the error rather than the whole error string.
Tested locally with both go1.17 and go1.18.
See https://github.com/ooni/probe-cli/pull/708#issuecomment-1096447186
		
	
			
		
			
				
	
	
		
			113 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Code generated by go generate; DO NOT EDIT.
 | 
						|
// Generated: 2022-04-12 11:15:59.144763 +0200 CEST m=+0.366150335
 | 
						|
 | 
						|
package netxlite
 | 
						|
 | 
						|
import (
 | 
						|
	"errors"
 | 
						|
	"syscall"
 | 
						|
 | 
						|
	"golang.org/x/sys/unix"
 | 
						|
)
 | 
						|
 | 
						|
// This enumeration provides a canonical name for
 | 
						|
// every system-call error we support. Note: this list
 | 
						|
// is system dependent. You're currently looking at
 | 
						|
// the list of errors for openbsd.
 | 
						|
const (
 | 
						|
	ECONNREFUSED    = unix.ECONNREFUSED
 | 
						|
	ECONNRESET      = unix.ECONNRESET
 | 
						|
	EHOSTUNREACH    = unix.EHOSTUNREACH
 | 
						|
	ETIMEDOUT       = unix.ETIMEDOUT
 | 
						|
	EAFNOSUPPORT    = unix.EAFNOSUPPORT
 | 
						|
	EADDRINUSE      = unix.EADDRINUSE
 | 
						|
	EADDRNOTAVAIL   = unix.EADDRNOTAVAIL
 | 
						|
	EISCONN         = unix.EISCONN
 | 
						|
	EFAULT          = unix.EFAULT
 | 
						|
	EBADF           = unix.EBADF
 | 
						|
	ECONNABORTED    = unix.ECONNABORTED
 | 
						|
	EALREADY        = unix.EALREADY
 | 
						|
	EDESTADDRREQ    = unix.EDESTADDRREQ
 | 
						|
	EINTR           = unix.EINTR
 | 
						|
	EINVAL          = unix.EINVAL
 | 
						|
	EMSGSIZE        = unix.EMSGSIZE
 | 
						|
	ENETDOWN        = unix.ENETDOWN
 | 
						|
	ENETRESET       = unix.ENETRESET
 | 
						|
	ENETUNREACH     = unix.ENETUNREACH
 | 
						|
	ENOBUFS         = unix.ENOBUFS
 | 
						|
	ENOPROTOOPT     = unix.ENOPROTOOPT
 | 
						|
	ENOTSOCK        = unix.ENOTSOCK
 | 
						|
	ENOTCONN        = unix.ENOTCONN
 | 
						|
	EWOULDBLOCK     = unix.EWOULDBLOCK
 | 
						|
	EACCES          = unix.EACCES
 | 
						|
	EPROTONOSUPPORT = unix.EPROTONOSUPPORT
 | 
						|
	EPROTOTYPE      = unix.EPROTOTYPE
 | 
						|
)
 | 
						|
 | 
						|
// classifySyscallError converts a syscall error to the
 | 
						|
// proper OONI error. Returns the OONI error string
 | 
						|
// on success, an empty string otherwise.
 | 
						|
func classifySyscallError(err error) string {
 | 
						|
	var errno syscall.Errno
 | 
						|
	if !errors.As(err, &errno) {
 | 
						|
		return ""
 | 
						|
	}
 | 
						|
	switch errno {
 | 
						|
	case unix.ECONNREFUSED:
 | 
						|
		return FailureConnectionRefused
 | 
						|
	case unix.ECONNRESET:
 | 
						|
		return FailureConnectionReset
 | 
						|
	case unix.EHOSTUNREACH:
 | 
						|
		return FailureHostUnreachable
 | 
						|
	case unix.ETIMEDOUT:
 | 
						|
		return FailureTimedOut
 | 
						|
	case unix.EAFNOSUPPORT:
 | 
						|
		return FailureAddressFamilyNotSupported
 | 
						|
	case unix.EADDRINUSE:
 | 
						|
		return FailureAddressInUse
 | 
						|
	case unix.EADDRNOTAVAIL:
 | 
						|
		return FailureAddressNotAvailable
 | 
						|
	case unix.EISCONN:
 | 
						|
		return FailureAlreadyConnected
 | 
						|
	case unix.EFAULT:
 | 
						|
		return FailureBadAddress
 | 
						|
	case unix.EBADF:
 | 
						|
		return FailureBadFileDescriptor
 | 
						|
	case unix.ECONNABORTED:
 | 
						|
		return FailureConnectionAborted
 | 
						|
	case unix.EALREADY:
 | 
						|
		return FailureConnectionAlreadyInProgress
 | 
						|
	case unix.EDESTADDRREQ:
 | 
						|
		return FailureDestinationAddressRequired
 | 
						|
	case unix.EINTR:
 | 
						|
		return FailureInterrupted
 | 
						|
	case unix.EINVAL:
 | 
						|
		return FailureInvalidArgument
 | 
						|
	case unix.EMSGSIZE:
 | 
						|
		return FailureMessageSize
 | 
						|
	case unix.ENETDOWN:
 | 
						|
		return FailureNetworkDown
 | 
						|
	case unix.ENETRESET:
 | 
						|
		return FailureNetworkReset
 | 
						|
	case unix.ENETUNREACH:
 | 
						|
		return FailureNetworkUnreachable
 | 
						|
	case unix.ENOBUFS:
 | 
						|
		return FailureNoBufferSpace
 | 
						|
	case unix.ENOPROTOOPT:
 | 
						|
		return FailureNoProtocolOption
 | 
						|
	case unix.ENOTSOCK:
 | 
						|
		return FailureNotASocket
 | 
						|
	case unix.ENOTCONN:
 | 
						|
		return FailureNotConnected
 | 
						|
	case unix.EWOULDBLOCK:
 | 
						|
		return FailureOperationWouldBlock
 | 
						|
	case unix.EACCES:
 | 
						|
		return FailurePermissionDenied
 | 
						|
	case unix.EPROTONOSUPPORT:
 | 
						|
		return FailureProtocolNotSupported
 | 
						|
	case unix.EPROTOTYPE:
 | 
						|
		return FailureWrongProtocolType
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 |