cloudflare/cloudflared

Public

mirrored from https://github.com/cloudflare/cloudflaredAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
2025.4.2

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

connection/errors.go

78lines · modecode

1package connection
2
3import (
4 "github.com/cloudflare/cloudflared/edgediscovery"
5 tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
6)
7
8const (
9 DuplicateConnectionError = "EDUPCONN"
10)
11
12type DupConnRegisterTunnelError struct{}
13
14var errDuplicationConnection = DupConnRegisterTunnelError{}
15
16func (e DupConnRegisterTunnelError) Error() string {
17 return "already connected to this server, trying another address"
18}
19
20// Dial to edge server with quic failed
21type EdgeQuicDialError struct {
22 Cause error
23}
24
25func (e *EdgeQuicDialError) Error() string {
26 return "failed to dial to edge with quic: " + e.Cause.Error()
27}
28
29func (e *EdgeQuicDialError) Unwrap() error {
30 return e.Cause
31}
32
33// RegisterTunnel error from server
34type ServerRegisterTunnelError struct {
35 Cause error
36 Permanent bool
37}
38
39func (e ServerRegisterTunnelError) Error() string {
40 return e.Cause.Error()
41}
42
43func serverRegistrationErrorFromRPC(err error) ServerRegisterTunnelError {
44 if retryable, ok := err.(*tunnelpogs.RetryableError); ok {
45 return ServerRegisterTunnelError{
46 Cause: retryable.Unwrap(),
47 Permanent: false,
48 }
49 }
50 return ServerRegisterTunnelError{
51 Cause: err,
52 Permanent: true,
53 }
54}
55
56type muxerShutdownError struct{}
57
58func (e muxerShutdownError) Error() string {
59 return "muxer shutdown"
60}
61
62var errMuxerStopped = muxerShutdownError{}
63
64func isHandshakeErrRecoverable(err error, connIndex uint8, observer *Observer) bool {
65 log := observer.log.With().
66 Uint8(LogFieldConnIndex, connIndex).
67 Err(err).
68 Logger()
69
70 switch err.(type) {
71 case edgediscovery.DialError:
72 log.Error().Msg("Connection unable to dial edge")
73 default:
74 log.Error().Msg("Connection failed")
75 return false
76 }
77 return true
78}
79