mirror of
https://github.com/XTLS/Xray-core.git
synced 2026-10-04 14:56:49 +00:00
TUN inbound: Reuse existing Wintun adapter by name on Windows again (#6811)
Fixes https://github.com/XTLS/Xray-core/issues/6780
This commit is contained in:
@@ -78,8 +78,13 @@ func open(name, desc string) (*wintun.Adapter, error) {
|
|||||||
// generate a deterministic GUID from the adapter name
|
// generate a deterministic GUID from the adapter name
|
||||||
id := md5.Sum([]byte(name))
|
id := md5.Sum([]byte(name))
|
||||||
guid := (*windows.GUID)(unsafe.Pointer(&id[0]))
|
guid := (*windows.GUID)(unsafe.Pointer(&id[0]))
|
||||||
|
// try to open existing adapter by name
|
||||||
|
adapter, err := wintun.OpenAdapter(name)
|
||||||
|
if err == nil {
|
||||||
|
return adapter, nil
|
||||||
|
}
|
||||||
// try to create adapter anew
|
// try to create adapter anew
|
||||||
adapter, err := wintun.CreateAdapter(name, desc, guid)
|
adapter, err = wintun.CreateAdapter(name, desc, guid)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return adapter, nil
|
return adapter, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user