mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-15 03:11:02 +01:00
27 lines
715 B
Go
27 lines
715 B
Go
|
//go:build ios
|
||
|
|
||
|
package iface
|
||
|
|
||
|
import (
|
||
|
"github.com/netbirdio/netbird/client/iface/bind"
|
||
|
"github.com/netbirdio/netbird/client/iface/device"
|
||
|
"github.com/netbirdio/netbird/client/iface/wgproxy"
|
||
|
)
|
||
|
|
||
|
// NewWGIFace Creates a new WireGuard interface instance
|
||
|
func NewWGIFace(opts WGIFaceOpts) (*WGIface, error) {
|
||
|
wgAddress, err := device.ParseWGAddress(opts.Address)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
iceBind := bind.NewICEBind(opts.TransportNet, opts.FilterFn)
|
||
|
|
||
|
wgIFace := &WGIface{
|
||
|
tun: device.NewTunDevice(opts.IFaceName, wgAddress, opts.WGPort, opts.WGPrivKey, iceBind, opts.MobileArgs.TunFd),
|
||
|
userspaceBind: true,
|
||
|
wgProxyFactory: wgproxy.NewUSPFactory(iceBind),
|
||
|
}
|
||
|
return wgIFace, nil
|
||
|
}
|