mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-22 08:03:30 +01:00
Split create Interface based on OS
This commit is contained in:
parent
59360519d6
commit
6e4c232ff2
@ -22,8 +22,7 @@ var tunIface tun.Device
|
||||
// Will reuse an existing one.
|
||||
func Create(iface string, address string) error {
|
||||
var err error
|
||||
|
||||
tunIface, err = tun.CreateTUN(iface, defaultMTU)
|
||||
tunIface, err = createIface(iface, defaultMTU)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -4,9 +4,15 @@ package iface
|
||||
|
||||
import (
|
||||
"golang.zx2c4.com/wireguard/ipc"
|
||||
"golang.zx2c4.com/wireguard/tun"
|
||||
"net"
|
||||
)
|
||||
|
||||
// createIface creates a tun device
|
||||
func createIface(iface string, defaultMTU int) (tun.Device, error) {
|
||||
return tun.CreateTUN(iface, defaultMTU)
|
||||
}
|
||||
|
||||
// getUAPI returns a Listener
|
||||
func getUAPI(iface string) (net.Listener, error) {
|
||||
tunSock, err := ipc.UAPIOpen(iface)
|
||||
|
@ -6,7 +6,7 @@ import (
|
||||
|
||||
"golang.zx2c4.com/wireguard/ipc"
|
||||
"golang.zx2c4.com/wireguard/tun"
|
||||
|
||||
"golang.zx2c4.com/wireguard/windows/elevate"
|
||||
"golang.zx2c4.com/wireguard/windows/tunnel/winipcfg"
|
||||
)
|
||||
|
||||
@ -32,6 +32,22 @@ func assignAddr(address string, tunDevice tun.Device) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// createIface creates a tun device
|
||||
func createIface(iface string, defaultMTU int) (tun.Device, error) {
|
||||
|
||||
var tunDevice tun.Device
|
||||
err := elevate.DoAsSystem(func() error {
|
||||
var err error
|
||||
tunDevice, err = tun.CreateTUNWithRequestedGUID(iface, &windows.GUID{12, 12, 12, [8]byte{12, 12, 12, 12, 12, 12, 12, 12}}, defaultMTU)
|
||||
return err
|
||||
})
|
||||
if err != nil {
|
||||
log.Errorln("Failed to create the tunnel device: ", err)
|
||||
return nil, err
|
||||
}
|
||||
return tunDevice, err
|
||||
}
|
||||
|
||||
// getUAPI returns a Listener
|
||||
func getUAPI(iface string) (net.Listener, error) {
|
||||
return ipc.UAPIListen(iface)
|
||||
|
Loading…
Reference in New Issue
Block a user