mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-25 19:15:34 +00:00
tailcfg, control/controlclient: allow empty MapResponse.Domain (mapver17)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
5092cffd1f
commit
3739cf22b0
@ -38,6 +38,7 @@ type mapSession struct {
|
|||||||
lastParsedPacketFilter []filter.Match
|
lastParsedPacketFilter []filter.Match
|
||||||
collectServices bool
|
collectServices bool
|
||||||
previousPeers []*tailcfg.Node // for delta-purposes
|
previousPeers []*tailcfg.Node // for delta-purposes
|
||||||
|
lastDomain string
|
||||||
|
|
||||||
// netMapBuilding is non-nil during a netmapForResponse call,
|
// netMapBuilding is non-nil during a netmapForResponse call,
|
||||||
// containing the value to be returned, once fully populated.
|
// containing the value to be returned, once fully populated.
|
||||||
@ -96,6 +97,9 @@ func (ms *mapSession) netmapForResponse(resp *tailcfg.MapResponse) *netmap.Netwo
|
|||||||
if v, ok := resp.CollectServices.Get(); ok {
|
if v, ok := resp.CollectServices.Get(); ok {
|
||||||
ms.collectServices = v
|
ms.collectServices = v
|
||||||
}
|
}
|
||||||
|
if resp.Domain != "" {
|
||||||
|
ms.lastDomain = resp.Domain
|
||||||
|
}
|
||||||
|
|
||||||
nm := &netmap.NetworkMap{
|
nm := &netmap.NetworkMap{
|
||||||
SelfNode: resp.Node,
|
SelfNode: resp.Node,
|
||||||
@ -108,7 +112,7 @@ func (ms *mapSession) netmapForResponse(resp *tailcfg.MapResponse) *netmap.Netwo
|
|||||||
Peers: resp.Peers,
|
Peers: resp.Peers,
|
||||||
User: resp.Node.User,
|
User: resp.Node.User,
|
||||||
UserProfiles: make(map[tailcfg.UserID]tailcfg.UserProfile),
|
UserProfiles: make(map[tailcfg.UserID]tailcfg.UserProfile),
|
||||||
Domain: resp.Domain,
|
Domain: ms.lastDomain,
|
||||||
DNS: *ms.lastDNSConfig,
|
DNS: *ms.lastDNSConfig,
|
||||||
Hostinfo: resp.Node.Hostinfo,
|
Hostinfo: resp.Node.Hostinfo,
|
||||||
PacketFilter: ms.lastParsedPacketFilter,
|
PacketFilter: ms.lastParsedPacketFilter,
|
||||||
|
@ -256,4 +256,24 @@ func TestNetmapForResponse(t *testing.T) {
|
|||||||
})
|
})
|
||||||
wantCollect(true)
|
wantCollect(true)
|
||||||
})
|
})
|
||||||
|
t.Run("implicit_domain", func(t *testing.T) {
|
||||||
|
ms := newTestMapSession(t)
|
||||||
|
var nm *netmap.NetworkMap
|
||||||
|
want := func(v string) {
|
||||||
|
t.Helper()
|
||||||
|
if nm.Domain != v {
|
||||||
|
t.Errorf("netmap.Domain = %q; want %q", nm.Domain, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nm = ms.netmapForResponse(&tailcfg.MapResponse{
|
||||||
|
Node: new(tailcfg.Node),
|
||||||
|
Domain: "foo.com",
|
||||||
|
})
|
||||||
|
want("foo.com")
|
||||||
|
|
||||||
|
nm = ms.netmapForResponse(&tailcfg.MapResponse{
|
||||||
|
Node: new(tailcfg.Node),
|
||||||
|
})
|
||||||
|
want("foo.com")
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,8 @@
|
|||||||
// 14: 2021-04-07: client understands DNSConfig.Routes and DNSConfig.Resolvers
|
// 14: 2021-04-07: client understands DNSConfig.Routes and DNSConfig.Resolvers
|
||||||
// 15: 2021-04-12: client treats nil MapResponse.DNSConfig as meaning unchanged
|
// 15: 2021-04-12: client treats nil MapResponse.DNSConfig as meaning unchanged
|
||||||
// 16: 2021-04-15: client understands Node.Online, MapResponse.OnlineChange
|
// 16: 2021-04-15: client understands Node.Online, MapResponse.OnlineChange
|
||||||
const CurrentMapRequestVersion = 16
|
// 17: 2021-04-18: MapResponse.Domain empty means unchanged
|
||||||
|
const CurrentMapRequestVersion = 17
|
||||||
|
|
||||||
type StableID string
|
type StableID string
|
||||||
|
|
||||||
@ -939,7 +940,8 @@ type MapResponse struct {
|
|||||||
// "foo@gmail.com" (for siloed users on shared email
|
// "foo@gmail.com" (for siloed users on shared email
|
||||||
// providers). Its exact form should not be depended on; new
|
// providers). Its exact form should not be depended on; new
|
||||||
// forms are coming later.
|
// forms are coming later.
|
||||||
Domain string
|
// If empty, the value is unchanged.
|
||||||
|
Domain string `json:",omitempty"`
|
||||||
|
|
||||||
// CollectServices reports whether this node's Tailnet has
|
// CollectServices reports whether this node's Tailnet has
|
||||||
// requested that info about services be included in HostInfo.
|
// requested that info about services be included in HostInfo.
|
||||||
|
Loading…
Reference in New Issue
Block a user