From 45354dab9bddc97acaa84b03b99448ac49b4c0cf Mon Sep 17 00:00:00 2001 From: Irbe Krumina Date: Thu, 31 Oct 2024 14:45:57 +0000 Subject: [PATCH] ipn,tailcfg: add app connector config knob to conffile (#13942) Make it possible to advertise app connector via a new conffile field. Also bumps capver - conffile deserialization errors out if unknonw fields are set, so we need to know which clients understand the new field. Updates tailscale/tailscale#11113 Signed-off-by: Irbe Krumina --- ipn/conf.go | 6 ++++++ tailcfg/tailcfg.go | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ipn/conf.go b/ipn/conf.go index 6a67f4004..1b2831b03 100644 --- a/ipn/conf.go +++ b/ipn/conf.go @@ -32,6 +32,8 @@ type ConfigVAlpha struct { AdvertiseRoutes []netip.Prefix `json:",omitempty"` DisableSNAT opt.Bool `json:",omitempty"` + AppConnector *AppConnectorPrefs `json:",omitempty"` // advertise app connector; defaults to false (if nil or explicitly set to false) + NetfilterMode *string `json:",omitempty"` // "on", "off", "nodivert" NoStatefulFiltering opt.Bool `json:",omitempty"` @@ -137,5 +139,9 @@ func (c *ConfigVAlpha) ToPrefs() (MaskedPrefs, error) { mp.AutoUpdate = *c.AutoUpdate mp.AutoUpdateSet = AutoUpdatePrefsMask{ApplySet: true, CheckSet: true} } + if c.AppConnector != nil { + mp.AppConnector = *c.AppConnector + mp.AppConnectorSet = true + } return mp, nil } diff --git a/tailcfg/tailcfg.go b/tailcfg/tailcfg.go index 0e1b1d4ae..9e39a4336 100644 --- a/tailcfg/tailcfg.go +++ b/tailcfg/tailcfg.go @@ -149,7 +149,8 @@ type CapabilityVersion int // - 104: 2024-08-03: SelfNodeV6MasqAddrForThisPeer now works // - 105: 2024-08-05: Fixed SSH behavior on systems that use busybox (issue #12849) // - 106: 2024-09-03: fix panic regression from cryptokey routing change (65fe0ba7b5) -const CurrentCapabilityVersion CapabilityVersion = 106 +// - 107: 2024-10-30: add App Connector to conffile (PR #13942) +const CurrentCapabilityVersion CapabilityVersion = 107 type StableID string