12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package connection
- import (
- "github.com/cloudflare/cloudflared/edgediscovery"
- 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 muxerShutdownError struct{}
- func (e muxerShutdownError) Error() string {
- return "muxer shutdown"
- }
- var errMuxerStopped = muxerShutdownError{}
- func isHandshakeErrRecoverable(err error, connIndex uint8, observer *Observer) bool {
- log := observer.log.With().
- Uint8(LogFieldConnIndex, connIndex).
- Err(err).
- Logger()
- switch err.(type) {
- case edgediscovery.DialError:
- log.Error().Msg("Connection unable to dial edge")
- default:
- log.Error().Msg("Connection failed")
- return false
- }
- return true
- }
|