Wireguard support for Mullvad and Windscribe (#565)
- `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`
This commit is contained in:
30
internal/wireguard/constructor.go
Normal file
30
internal/wireguard/constructor.go
Normal file
@@ -0,0 +1,30 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user