78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
package connection
|
|
|
|
import (
|
|
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
|
|
)
|
|
|
|
const (
|
|
DuplicateConnectionError = "EDUPCONN"
|
|
)
|
|
|
|
type DupConnRegisterTunnelError struct{}
|
|
|
|
var errDuplicationConnection = DupConnRegisterTunnelError{}
|
|
|
|
func (e DupConnRegisterTunnelError) Error() string {
|
|
return "already connected to this server, trying another address"
|
|
}
|
|
|
|
// Dial to edge server with quic failed
|
|
type EdgeQuicDialError struct {
|
|
Cause error
|
|
}
|
|
|
|
func (e *EdgeQuicDialError) Error() string {
|
|
return "failed to dial to edge with quic: " + e.Cause.Error()
|
|
}
|
|
|
|
func (e *EdgeQuicDialError) Unwrap() error {
|
|
return e.Cause
|
|
}
|
|
|
|
// RegisterTunnel error from server
|
|
type ServerRegisterTunnelError struct {
|
|
Cause error
|
|
Permanent bool
|
|
}
|
|
|
|
func (e ServerRegisterTunnelError) Error() string {
|
|
return e.Cause.Error()
|
|
}
|
|
|
|
func serverRegistrationErrorFromRPC(err error) ServerRegisterTunnelError {
|
|
if retryable, ok := err.(*tunnelpogs.RetryableError); ok {
|
|
return ServerRegisterTunnelError{
|
|
Cause: retryable.Unwrap(),
|
|
Permanent: false,
|
|
}
|
|
}
|
|
return ServerRegisterTunnelError{
|
|
Cause: err,
|
|
Permanent: true,
|
|
}
|
|
}
|
|
|
|
type ControlStreamError struct{}
|
|
|
|
var _ error = &ControlStreamError{}
|
|
|
|
func (e *ControlStreamError) Error() string {
|
|
return "control stream encountered a failure while serving"
|
|
}
|
|
|
|
type StreamListenerError struct{}
|
|
|
|
var _ error = &StreamListenerError{}
|
|
|
|
func (e *StreamListenerError) Error() string {
|
|
return "accept stream listener encountered a failure while serving"
|
|
}
|
|
|
|
type DatagramManagerError struct{}
|
|
|
|
var _ error = &DatagramManagerError{}
|
|
|
|
func (e *DatagramManagerError) Error() string {
|
|
return "datagram manager encountered a failure while serving"
|
|
}
|