2023-09-18 16:52:28 +02:00
|
|
|
package ctrlserver
|
|
|
|
|
2023-09-19 14:45:49 +02:00
|
|
|
import (
|
2023-10-01 20:01:35 +02:00
|
|
|
"github.com/tim-beatham/wgmesh/pkg/conn"
|
2023-10-05 18:48:54 +02:00
|
|
|
"github.com/tim-beatham/wgmesh/pkg/manager"
|
2023-09-19 14:45:49 +02:00
|
|
|
"golang.zx2c4.com/wireguard/wgctrl"
|
|
|
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
|
|
|
)
|
2023-09-18 16:52:28 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Represents a WireGuard node
|
|
|
|
*/
|
|
|
|
type MeshNode struct {
|
2023-09-20 00:50:44 +02:00
|
|
|
HostEndpoint string
|
|
|
|
WgEndpoint string
|
|
|
|
PublicKey string
|
|
|
|
WgHost string
|
2023-09-19 14:45:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
type Mesh struct {
|
|
|
|
SharedKey *wgtypes.Key
|
|
|
|
Nodes map[string]MeshNode
|
2023-09-18 16:52:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Defines the mesh control server this node
|
|
|
|
* is running
|
|
|
|
*/
|
|
|
|
type MeshCtrlServer struct {
|
2023-10-02 17:03:41 +02:00
|
|
|
Client *wgctrl.Client
|
2023-10-05 18:48:54 +02:00
|
|
|
MeshManager *manager.MeshManger
|
|
|
|
ConnectionManager conn.ConnectionManager
|
2023-10-02 17:03:41 +02:00
|
|
|
ConnectionServer *conn.ConnectionServer
|
2023-09-18 16:52:28 +02:00
|
|
|
}
|