Handle existing Wintun adapter on restart
This commit is contained in:
parent
1010e39d79
commit
49e4afd5c7
1 changed files with 8 additions and 1 deletions
|
|
@ -43,7 +43,14 @@ func New(options Options) (WinTun, error) {
|
||||||
}
|
}
|
||||||
adapter, err := wintun.CreateAdapter(options.Name, TunnelType, generateGUIDByDeviceName(options.Name))
|
adapter, err := wintun.CreateAdapter(options.Name, TunnelType, generateGUIDByDeviceName(options.Name))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
if !errors.Is(err, os.ErrExist) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
createErr := err
|
||||||
|
adapter, err = wintun.OpenAdapter(options.Name)
|
||||||
|
if err != nil {
|
||||||
|
return nil, E.Errors(E.Cause(createErr, "create adapter"), E.Cause(err, "open existing adapter"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
nativeTun := &NativeTun{
|
nativeTun := &NativeTun{
|
||||||
adapter: adapter,
|
adapter: adapter,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue