43 lines
632 B
Go
43 lines
632 B
Go
package listener
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
|
|
"github.com/go-gost/gost/v3/pkg/metadata"
|
|
)
|
|
|
|
var (
|
|
ErrClosed = errors.New("accpet on closed listener")
|
|
)
|
|
|
|
// Listener is a server listener, just like a net.Listener.
|
|
type Listener interface {
|
|
Init(metadata.Metadata) error
|
|
net.Listener
|
|
}
|
|
|
|
type AcceptError struct {
|
|
err error
|
|
}
|
|
|
|
func NewAcceptError(err error) error {
|
|
return &AcceptError{err: err}
|
|
}
|
|
|
|
func (e *AcceptError) Error() string {
|
|
return e.err.Error()
|
|
}
|
|
|
|
func (e *AcceptError) Timeout() bool {
|
|
return false
|
|
}
|
|
|
|
func (e *AcceptError) Temporary() bool {
|
|
return true
|
|
}
|
|
|
|
func (e *AcceptError) Unwrap() error {
|
|
return e.err
|
|
}
|