diff --git a/openflare_server/service/agent.go b/openflare_server/service/agent.go index a487e891..a3827cfb 100644 --- a/openflare_server/service/agent.go +++ b/openflare_server/service/agent.go @@ -465,6 +465,9 @@ func computeNodeStatus(node *model.Node) string { if node == nil { return NodeStatusOffline } + if node.NodeType == "tunnel_relay" && IsRelayWSConnected(node.NodeID) { + return NodeStatusOnline + } if IsAgentWSConnected(node.NodeID) { return NodeStatusOnline } diff --git a/openflare_server/service/node.go b/openflare_server/service/node.go index 6c4b41bf..d00d1c67 100644 --- a/openflare_server/service/node.go +++ b/openflare_server/service/node.go @@ -359,12 +359,15 @@ func buildNodeView(node *model.Node) *NodeView { } func nodeViewLastSeenAt(node *model.Node) any { - if node != nil && IsAgentWSConnected(node.NodeID) { - return AgentWSConnectedLastSeenValue - } if node == nil { return time.Time{} } + if node.NodeType == "tunnel_relay" && IsRelayWSConnected(node.NodeID) { + return RelayWSConnectedLastSeenValue + } + if IsAgentWSConnected(node.NodeID) { + return AgentWSConnectedLastSeenValue + } return node.LastSeenAt } diff --git a/openflare_server/service/relay_ws.go b/openflare_server/service/relay_ws.go index 38fc1e5e..ddaad9c6 100644 --- a/openflare_server/service/relay_ws.go +++ b/openflare_server/service/relay_ws.go @@ -1,5 +1,9 @@ package service +const ( + RelayWSConnectedLastSeenValue = "__OPENFLARE_WS_CONNECTED__" +) + var DefaultRelayWSHub = NewWSHub("relay") func RegisterRelayWSClient(nodeID string) *WSClient {