mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-16 03:31:39 +00:00
tailcfg: add MapResponse.ControlTime field
And log it when provided in map responses. The test uses the date on which I joined Tailscale. :) Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
parent
72d8672ef7
commit
8cf6d0a17b
@ -772,6 +772,9 @@ 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() {
|
||||||
|
c.logf("netmap: control time is %v", resp.ControlTime.UTC().Format(time.RFC3339Nano))
|
||||||
|
}
|
||||||
if resp.KeepAlive {
|
if resp.KeepAlive {
|
||||||
vlogf("netmap: got keep-alive")
|
vlogf("netmap: got keep-alive")
|
||||||
} else {
|
} else {
|
||||||
|
@ -1291,6 +1291,9 @@ type MapResponse struct {
|
|||||||
// SSH connections should be handled.
|
// SSH connections should be handled.
|
||||||
SSHPolicy *SSHPolicy `json:",omitempty"`
|
SSHPolicy *SSHPolicy `json:",omitempty"`
|
||||||
|
|
||||||
|
// ControlTime, if non-zero, is the current timestamp according to the control server.
|
||||||
|
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.
|
||||||
Debug *Debug `json:",omitempty"`
|
Debug *Debug `json:",omitempty"`
|
||||||
|
@ -146,6 +146,27 @@ func TestCollectPanic(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestControlTimeLogLine(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
env := newTestEnv(t)
|
||||||
|
n := newTestNode(t, env)
|
||||||
|
|
||||||
|
n.StartDaemon()
|
||||||
|
n.AwaitResponding()
|
||||||
|
n.MustUp()
|
||||||
|
n.AwaitRunning()
|
||||||
|
|
||||||
|
if err := tstest.WaitFor(20*time.Second, func() error {
|
||||||
|
const sub = `netmap: control time is 2020-08-03T00:00:00.000000001Z`
|
||||||
|
if !n.env.LogCatcher.logsContains(mem.S(sub)) {
|
||||||
|
return fmt.Errorf("log catcher didn't see %#q; got %s", sub, n.env.LogCatcher.logsString())
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// test Issue 2321: Start with UpdatePrefs should save prefs to disk
|
// test Issue 2321: Start with UpdatePrefs should save prefs to disk
|
||||||
func TestStateSavedOnStart(t *testing.T) {
|
func TestStateSavedOnStart(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
@ -730,7 +730,8 @@ func (s *Server) MapResponse(req *tailcfg.MapRequest) (res *tailcfg.MapResponse,
|
|||||||
Debug: &tailcfg.Debug{
|
Debug: &tailcfg.Debug{
|
||||||
DisableUPnP: "true",
|
DisableUPnP: "true",
|
||||||
},
|
},
|
||||||
DNSConfig: s.DNSConfig,
|
DNSConfig: s.DNSConfig,
|
||||||
|
ControlTime: time.Date(2020, 8, 3, 0, 0, 0, 1, time.UTC),
|
||||||
}
|
}
|
||||||
for _, p := range s.AllNodes() {
|
for _, p := range s.AllNodes() {
|
||||||
if p.StableID != node.StableID {
|
if p.StableID != node.StableID {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user