mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-26 03:25:35 +00:00
bc4381447f
This is usually the same as the requested interface, but on some unixes can vary based on device number allocation, and on Windows it's the GUID instead of the pretty name, since everything relating to configuration wants the GUID. Signed-off-by: David Anderson <danderson@tailscale.com>
34 lines
821 B
Go
34 lines
821 B
Go
// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package tstun
|
|
|
|
import (
|
|
"github.com/tailscale/wireguard-go/tun"
|
|
"github.com/tailscale/wireguard-go/tun/wintun"
|
|
"golang.org/x/sys/windows"
|
|
"golang.zx2c4.com/wireguard/windows/tunnel/winipcfg"
|
|
)
|
|
|
|
func init() {
|
|
var err error
|
|
tun.WintunPool, err = wintun.MakePool("Tailscale")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
guid, err := windows.GUIDFromString("{37217669-42da-4657-a55b-0d995d328250}")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
tun.WintunStaticRequestedGUID = &guid
|
|
}
|
|
|
|
func interfaceName(dev tun.Device) (string, error) {
|
|
guid, err := winipcfg.LUID(dev.(*tun.NativeTun).LUID()).GUID()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return guid.String(), nil
|
|
}
|