- `internal/wireguard` client package with unit tests - Implementation works with kernel space or user space if unavailable - `WIREGUARD_PRIVATE_KEY` - `WIREGUARD_ADDRESS` - `WIREGUARD_PRESHARED_KEY` - `WIREGUARD_PORT` - `internal/netlink` package used by `internal/wireguard`
31 lines
521 B
Go
31 lines
521 B
Go
package wireguard
|
|
|
|
import "github.com/qdm12/gluetun/internal/netlink"
|
|
|
|
var _ Wireguarder = (*Wireguard)(nil)
|
|
|
|
type Wireguarder interface {
|
|
Runner
|
|
Runner
|
|
}
|
|
|
|
type Wireguard struct {
|
|
logger Logger
|
|
settings Settings
|
|
netlink netlink.NetLinker
|
|
}
|
|
|
|
func New(settings Settings, netlink NetLinker,
|
|
logger Logger) (w *Wireguard, err error) {
|
|
settings.SetDefaults()
|
|
if err := settings.Check(); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &Wireguard{
|
|
logger: logger,
|
|
settings: settings,
|
|
netlink: netlink,
|
|
}, nil
|
|
}
|