tailcfg/derpmap: add flag to omit ts's derps

This adds a flag to derp maps which specifies that default Tailscale DERP servers should not be
used. If true and there are entries in this map, it indicates that the entries in this map
should take precedent and not hit any of tailscale's DERP servers.

This change is backwards compatible, as the default behavior should be false.

Updates #1264

Signed-off-by: julianknodt <julianknodt@gmail.com>
This commit is contained in:
julianknodt 2021-06-22 16:24:32 -07:00 committed by Julian Knodt
parent 48883272ea
commit 597fa3d3c3
2 changed files with 6 additions and 1 deletions

View File

@ -14,6 +14,10 @@ type DERPMap struct {
// //
// The numbers are not necessarily contiguous. // The numbers are not necessarily contiguous.
Regions map[int]*DERPRegion Regions map[int]*DERPRegion
// OmitDefaultRegions specifies to not use Tailscale's DERP servers, and only use those
// specified in this DERPMap. If there are none set outside of the defaults, this is a noop.
OmitDefaultRegions bool `json:"omitDefaultRegions,omitempty"`
} }
/// RegionIDs returns the sorted region IDs. /// RegionIDs returns the sorted region IDs.

View File

@ -309,7 +309,8 @@ func (src *DERPMap) Clone() *DERPMap {
// A compilation failure here means this code must be regenerated, with command: // A compilation failure here means this code must be regenerated, with command:
// tailscale.com/cmd/cloner -type User,Node,Hostinfo,NetInfo,Login,DNSConfig,DNSResolver,RegisterResponse,DERPRegion,DERPMap,DERPNode // tailscale.com/cmd/cloner -type User,Node,Hostinfo,NetInfo,Login,DNSConfig,DNSResolver,RegisterResponse,DERPRegion,DERPMap,DERPNode
var _DERPMapNeedsRegeneration = DERPMap(struct { var _DERPMapNeedsRegeneration = DERPMap(struct {
Regions map[int]*DERPRegion Regions map[int]*DERPRegion
OmitDefaultRegions bool
}{}) }{})
// Clone makes a deep copy of DERPNode. // Clone makes a deep copy of DERPNode.