tailcfg: make MapResponse.ControlTime a pointer

Otherwise omitempty doesn't work.

This is wire-compatible with a non-pointer type, so switching
is safe, now and in the future.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
Josh Bleecher Snyder 2022-02-18 10:14:14 -08:00 committed by Josh Bleecher Snyder
parent bb93e29d5c
commit 8c3c5e80b7
3 changed files with 4 additions and 3 deletions

View File

@ -772,7 +772,7 @@ func (c *Direct) sendMapRequest(ctx context.Context, maxPolls int, cb func(*netm
go answerPing(c.logf, c.httpc, pr) go answerPing(c.logf, c.httpc, pr)
} }
if !resp.ControlTime.IsZero() { if resp.ControlTime != nil && !resp.ControlTime.IsZero() {
c.logf("netmap: control time is %v", resp.ControlTime.UTC().Format(time.RFC3339Nano)) c.logf("netmap: control time is %v", resp.ControlTime.UTC().Format(time.RFC3339Nano))
} }
if resp.KeepAlive { if resp.KeepAlive {

View File

@ -1297,7 +1297,7 @@ type MapResponse struct {
SSHPolicy *SSHPolicy `json:",omitempty"` SSHPolicy *SSHPolicy `json:",omitempty"`
// ControlTime, if non-zero, is the current timestamp according to the control server. // ControlTime, if non-zero, is the current timestamp according to the control server.
ControlTime time.Time `json:",omitempty"` ControlTime *time.Time `json:",omitempty"`
// Debug is normally nil, except for when the control server // Debug is normally nil, except for when the control server
// is setting debug settings on a node. // is setting debug settings on a node.

View File

@ -721,6 +721,7 @@ func (s *Server) MapResponse(req *tailcfg.MapRequest) (res *tailcfg.MapResponse,
return nil, nil return nil, nil
} }
user, _ := s.getUser(nk) user, _ := s.getUser(nk)
t := time.Date(2020, 8, 3, 0, 0, 0, 1, time.UTC)
res = &tailcfg.MapResponse{ res = &tailcfg.MapResponse{
Node: node, Node: node,
DERPMap: s.DERPMap, DERPMap: s.DERPMap,
@ -731,7 +732,7 @@ func (s *Server) MapResponse(req *tailcfg.MapRequest) (res *tailcfg.MapResponse,
DisableUPnP: "true", DisableUPnP: "true",
}, },
DNSConfig: s.DNSConfig, DNSConfig: s.DNSConfig,
ControlTime: time.Date(2020, 8, 3, 0, 0, 0, 1, time.UTC), ControlTime: &t,
} }
for _, p := range s.AllNodes() { for _, p := range s.AllNodes() {
if p.StableID != node.StableID { if p.StableID != node.StableID {