diff --git a/connection/features.go b/connection/features.go deleted file mode 100644 index 7e555fa4..00000000 --- a/connection/features.go +++ /dev/null @@ -1,9 +0,0 @@ -package connection - -const ( - FeatureSerializedHeaders = "serialized_headers" -) - -var SupportedFeatures = []string{ - FeatureSerializedHeaders, -} diff --git a/origin/tunnel.go b/origin/tunnel.go index 50dd02cc..c0994100 100644 --- a/origin/tunnel.go +++ b/origin/tunnel.go @@ -39,6 +39,8 @@ const ( lbProbeUserAgentPrefix = "Mozilla/5.0 (compatible; Cloudflare-Traffic-Manager/1.0; +https://www.cloudflare.com/traffic-manager/;" TagHeaderNamePrefix = "Cf-Warp-Tag-" DuplicateConnectionError = "EDUPCONN" + FeatureSerializedHeaders = "serialized_headers" + FeatureQuickReconnects = "quick_reconnects" ) type registerRPCName string @@ -165,10 +167,18 @@ func (c *TunnelConfig) RegistrationOptions(connectionID uint8, OriginLocalIP str RunFromTerminal: c.RunFromTerminal, CompressionQuality: c.CompressionQuality, UUID: uuid.String(), - Features: connection.SupportedFeatures, + Features: c.SupportedFeatures(), } } +func (c *TunnelConfig) SupportedFeatures() []string { + basic := []string{FeatureSerializedHeaders} + if c.UseQuickReconnects { + basic = append(basic, FeatureQuickReconnects) + } + return basic +} + func StartTunnelDaemon(ctx context.Context, config *TunnelConfig, connectedSignal *signal.Signal, cloudflaredID uuid.UUID, reconnectCh chan struct{}) error { s, err := NewSupervisor(config, cloudflaredID) if err != nil {