mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-11 17:31:12 +01:00
101 lines
2.4 KiB
Go
101 lines
2.4 KiB
Go
package NetBirdSDK
|
|
|
|
// PeerInfo describe information about the peers. It designed for the UI usage
|
|
type PeerInfo struct {
|
|
IP string
|
|
FQDN string
|
|
LocalIceCandidateEndpoint string
|
|
RemoteIceCandidateEndpoint string
|
|
LocalIceCandidateType string
|
|
RemoteIceCandidateType string
|
|
PubKey string
|
|
Latency string
|
|
BytesRx int64
|
|
BytesTx int64
|
|
ConnStatus string
|
|
ConnStatusUpdate string
|
|
Direct bool
|
|
LastWireguardHandshake string
|
|
Relayed bool
|
|
RosenpassEnabled bool
|
|
Routes RoutesDetails
|
|
}
|
|
|
|
// GetRoutes return with RouteDetails
|
|
func (p PeerInfo) GetRouteDetails() *RoutesDetails {
|
|
return &p.Routes
|
|
}
|
|
|
|
// PeerInfoCollection made for Java layer to get non default types as collection
|
|
type PeerInfoCollection interface {
|
|
Add(s string) PeerInfoCollection
|
|
Get(i int) string
|
|
Size() int
|
|
GetFQDN() string
|
|
GetIP() string
|
|
}
|
|
|
|
// RoutesInfoCollection made for Java layer to get non default types as collection
|
|
type RoutesInfoCollection interface {
|
|
Add(s string) RoutesInfoCollection
|
|
Get(i int) string
|
|
Size() int
|
|
}
|
|
|
|
type RoutesDetails struct {
|
|
items []RoutesInfo
|
|
}
|
|
|
|
type RoutesInfo struct {
|
|
Route string
|
|
}
|
|
|
|
// StatusDetails is the implementation of the PeerInfoCollection
|
|
type StatusDetails struct {
|
|
items []PeerInfo
|
|
fqdn string
|
|
ip string
|
|
}
|
|
|
|
// Add new PeerInfo to the collection
|
|
func (array RoutesDetails) Add(s RoutesInfo) RoutesDetails {
|
|
array.items = append(array.items, s)
|
|
return array
|
|
}
|
|
|
|
// Get return an element of the collection
|
|
func (array RoutesDetails) Get(i int) *RoutesInfo {
|
|
return &array.items[i]
|
|
}
|
|
|
|
// Size return with the size of the collection
|
|
func (array RoutesDetails) Size() int {
|
|
return len(array.items)
|
|
}
|
|
|
|
// Add new PeerInfo to the collection
|
|
func (array StatusDetails) Add(s PeerInfo) StatusDetails {
|
|
array.items = append(array.items, s)
|
|
return array
|
|
}
|
|
|
|
// Get return an element of the collection
|
|
func (array StatusDetails) Get(i int) *PeerInfo {
|
|
return &array.items[i]
|
|
}
|
|
|
|
// Size return with the size of the collection
|
|
func (array StatusDetails) Size() int {
|
|
return len(array.items)
|
|
}
|
|
|
|
// GetFQDN return with the FQDN of the local peer
|
|
func (array StatusDetails) GetFQDN() string {
|
|
return array.fqdn
|
|
}
|
|
|
|
// GetIP return with the IP of the local peer
|
|
func (array StatusDetails) GetIP() string {
|
|
return array.ip
|
|
}
|