diff --git a/CHANGELOG.md b/CHANGELOG.md index 04af6306e1..ccd4f71520 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ - Add -c option to specify config file from command line [#285](https://github.com/juanfont/headscale/issues/285) [#612](https://github.com/juanfont/headscale/pull/601) - Add configuration option to allow Tailscale clients to use a random WireGuard port. [kb/1181/firewalls](https://tailscale.com/kb/1181/firewalls) [#624](https://github.com/juanfont/headscale/pull/624) - Improve obtuse UX regarding missing configuration (`ephemeral_node_inactivity_timeout` not set) [#639](https://github.com/juanfont/headscale/pull/639) +- Fix nodes being shown as 'offline' in `tailscale status` [648](https://github.com/juanfont/headscale/pull/648) ## 0.15.0 (2022-03-20) diff --git a/machine.go b/machine.go index c2276459aa..cf6b88767c 100644 --- a/machine.go +++ b/machine.go @@ -637,6 +637,10 @@ func (machine Machine) toNode( hostInfo := machine.GetHostInfo() + // A node is Online if it is connected to the control server, + // and we now we update LastSeen every keepAliveInterval duration at least. + online := machine.LastSeen.After(time.Now().Add(-keepAliveInterval)) + node := tailcfg.Node{ ID: tailcfg.NodeID(machine.ID), // this is the actual ID StableID: tailcfg.StableNodeID( @@ -653,6 +657,7 @@ func (machine Machine) toNode( Endpoints: machine.Endpoints, DERP: derp, + Online: &online, Hostinfo: hostInfo.View(), Created: machine.CreatedAt, LastSeen: machine.LastSeen,