31 lines
826 B
Go
31 lines
826 B
Go
package tcp
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
// ErrTimeout indicates I/O timeout
|
|
var ErrTimeout = &timeoutError{}
|
|
|
|
type timeoutError struct{}
|
|
|
|
func (e *timeoutError) Error() string { return "I/O timeout" }
|
|
func (e *timeoutError) Timeout() bool { return true }
|
|
func (e *timeoutError) Temporary() bool { return true }
|
|
|
|
// ErrConnect is an error occurs while connecting to the host
|
|
// To get the detail of underlying error, lookup ErrorCode() in 'man 2 connect'
|
|
type ErrConnect struct {
|
|
error
|
|
}
|
|
|
|
// newErrConnect returns a ErrConnect with given error code
|
|
func newErrConnect(errCode int) *ErrConnect {
|
|
return &ErrConnect{unix.Errno(errCode)}
|
|
}
|
|
|
|
// ErrCheckerAlreadyStarted indicates there is another instance of CheckingLoop running.
|
|
var ErrCheckerAlreadyStarted = errors.New("Checker was already started")
|