yanic/runtime/node.go

38 lines
897 B
Go
Raw Normal View History

package runtime
import (
"net"
"github.com/FreifunkBremen/yanic/data"
"github.com/FreifunkBremen/yanic/lib/jsontime"
)
// Node struct
type Node struct {
Address *net.UDPAddr `json:"-"` // the last known address
Firstseen jsontime.Time `json:"firstseen"`
Lastseen jsontime.Time `json:"lastseen"`
Online bool `json:"online"`
2019-01-19 20:59:43 +00:00
NoRespondd bool `json:"no_respondd"`
Statistics *data.Statistics `json:"statistics"`
Nodeinfo *data.NodeInfo `json:"nodeinfo"`
Neighbours *data.Neighbours `json:"-"`
}
2017-04-18 01:07:41 +00:00
// Link represents a link between two nodes
type Link struct {
SourceID string
SourceAddress string
TargetID string
TargetAddress string
TQ float32
}
2017-04-18 01:07:41 +00:00
// IsGateway returns whether the node is a gateway
func (node *Node) IsGateway() bool {
if info := node.Nodeinfo; info != nil {
return info.VPN
}
return false
}