Set online status in lite requests (#1555)
This commit is contained in:
parent
84fbca97f7
commit
64c0a6523f
3 changed files with 14 additions and 15 deletions
|
@ -635,16 +635,6 @@ func (hsdb *HSDatabase) IsRoutesEnabled(node *types.Node, routeStr string) bool
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func OnlineNodeMap(peers types.Nodes) map[tailcfg.NodeID]bool {
|
|
||||||
ret := make(map[tailcfg.NodeID]bool)
|
|
||||||
|
|
||||||
for _, peer := range peers {
|
|
||||||
ret[tailcfg.NodeID(peer.ID)] = peer.IsOnline()
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
|
|
||||||
func (hsdb *HSDatabase) ListOnlineNodes(
|
func (hsdb *HSDatabase) ListOnlineNodes(
|
||||||
node *types.Node,
|
node *types.Node,
|
||||||
) (map[tailcfg.NodeID]bool, error) {
|
) (map[tailcfg.NodeID]bool, error) {
|
||||||
|
@ -656,7 +646,7 @@ func (hsdb *HSDatabase) ListOnlineNodes(
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return OnlineNodeMap(peers), nil
|
return peers.OnlineNodeMap(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// enableRoutes enables new routes based on a list of new routes.
|
// enableRoutes enables new routes based on a list of new routes.
|
||||||
|
|
|
@ -15,7 +15,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
mapset "github.com/deckarep/golang-set/v2"
|
mapset "github.com/deckarep/golang-set/v2"
|
||||||
"github.com/juanfont/headscale/hscontrol/db"
|
|
||||||
"github.com/juanfont/headscale/hscontrol/policy"
|
"github.com/juanfont/headscale/hscontrol/policy"
|
||||||
"github.com/juanfont/headscale/hscontrol/types"
|
"github.com/juanfont/headscale/hscontrol/types"
|
||||||
"github.com/juanfont/headscale/hscontrol/util"
|
"github.com/juanfont/headscale/hscontrol/util"
|
||||||
|
@ -218,9 +217,6 @@ func (m *Mapper) fullMapResponse(
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(kradalby): Move this into appendPeerChanges?
|
|
||||||
resp.OnlineChange = db.OnlineNodeMap(peers)
|
|
||||||
|
|
||||||
err = appendPeerChanges(
|
err = appendPeerChanges(
|
||||||
resp,
|
resp,
|
||||||
pol,
|
pol,
|
||||||
|
@ -618,5 +614,8 @@ func appendPeerChanges(
|
||||||
resp.UserProfiles = profiles
|
resp.UserProfiles = profiles
|
||||||
resp.SSHPolicy = sshPolicy
|
resp.SSHPolicy = sshPolicy
|
||||||
|
|
||||||
|
// TODO(kradalby): This currently does not take last seen in keepalives into account
|
||||||
|
resp.OnlineChange = peers.OnlineNodeMap()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,6 +70,16 @@ type (
|
||||||
Nodes []*Node
|
Nodes []*Node
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (nodes Nodes) OnlineNodeMap() map[tailcfg.NodeID]bool {
|
||||||
|
ret := make(map[tailcfg.NodeID]bool)
|
||||||
|
|
||||||
|
for _, node := range nodes {
|
||||||
|
ret[tailcfg.NodeID(node.ID)] = node.IsOnline()
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
type NodeAddresses []netip.Addr
|
type NodeAddresses []netip.Addr
|
||||||
|
|
||||||
func (na NodeAddresses) Sort() {
|
func (na NodeAddresses) Sort() {
|
||||||
|
|
Loading…
Reference in a new issue