Fix DNS not revert while close tun
This commit is contained in:
parent
5715a3919a
commit
1fb8456021
1 changed files with 12 additions and 0 deletions
12
tun_linux.go
12
tun_linux.go
|
|
@ -328,6 +328,7 @@ func (t *NativeTun) Close() error {
|
||||||
if t.options.EXP_ExternalConfiguration {
|
if t.options.EXP_ExternalConfiguration {
|
||||||
return common.Close(common.PtrOrNil(t.tunFile))
|
return common.Close(common.PtrOrNil(t.tunFile))
|
||||||
}
|
}
|
||||||
|
t.unsetSearchDomainForSystemdResolved()
|
||||||
t.unsetAddresses()
|
t.unsetAddresses()
|
||||||
return E.Errors(t.unsetRoute(), t.unsetRules(), common.Close(common.PtrOrNil(t.tunFile)))
|
return E.Errors(t.unsetRoute(), t.unsetRules(), common.Close(common.PtrOrNil(t.tunFile)))
|
||||||
}
|
}
|
||||||
|
|
@ -1094,3 +1095,14 @@ func (t *NativeTun) setSearchDomainForSystemdResolved() {
|
||||||
_ = shell.Exec(ctlPath, append([]string{"dns", t.options.Name}, common.Map(dnsServer, netip.Addr.String)...)...).Run()
|
_ = shell.Exec(ctlPath, append([]string{"dns", t.options.Name}, common.Map(dnsServer, netip.Addr.String)...)...).Run()
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *NativeTun) unsetSearchDomainForSystemdResolved() {
|
||||||
|
if t.options.EXP_DisableDNSHijack {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctlPath, err := exec.LookPath("resolvectl")
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_ = shell.Exec(ctlPath, "revert", t.options.Name).Run()
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue