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,8 +43,15 @@ func New(options Options) (WinTun, error) {
|
|||
}
|
||||
adapter, err := wintun.CreateAdapter(options.Name, TunnelType, generateGUIDByDeviceName(options.Name))
|
||||
if err != nil {
|
||||
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{
|
||||
adapter: adapter,
|
||||
options: options,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue