diff --git a/cmd/cloudflared/access/carrier.go b/cmd/cloudflared/access/carrier.go index 506c57c6..29e9b385 100644 --- a/cmd/cloudflared/access/carrier.go +++ b/cmd/cloudflared/access/carrier.go @@ -37,6 +37,10 @@ func StartForwarder(forwarder config.Forwarder, shutdown <-chan struct{}, logger headers.Set(h2mux.CFAccessClientSecretHeader, forwarder.TokenSecret) } + if forwarder.Destination != "" { + headers.Add(h2mux.CFJumpDestinationHeader, forwarder.Destination) + } + options := &carrier.StartOptions{ OriginURL: forwarder.URL, Headers: headers, //TODO: TUN-2688 support custom headers from config file diff --git a/cmd/cloudflared/config/model.go b/cmd/cloudflared/config/model.go index 656853e7..7838fa01 100644 --- a/cmd/cloudflared/config/model.go +++ b/cmd/cloudflared/config/model.go @@ -13,6 +13,7 @@ type Forwarder struct { Listener string `json:"listener"` TokenClientID string `json:"service_token_id" yaml:"serviceTokenID"` TokenSecret string `json:"secret_token_id" yaml:"serviceTokenSecret"` + Destination string `json:"destination"` } // Tunnel represents a tunnel that should be started @@ -50,6 +51,7 @@ func (f *Forwarder) Hash() string { io.WriteString(h, f.Listener) io.WriteString(h, f.TokenClientID) io.WriteString(h, f.TokenSecret) + io.WriteString(h, f.Destination) return fmt.Sprintf("%x", h.Sum(nil)) }