Skip to content

Commit

Permalink
wgengine: properly clean up freebsd routes and interfaces on close
Browse files Browse the repository at this point in the history
Signed-off-by: wardn <wardn@users.noreply.github.com>
  • Loading branch information
wardn authored and crawshaw committed Feb 25, 2020
1 parent 7a3be96 commit 9390a3e
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 9 deletions.
1 change: 1 addition & 0 deletions wgengine/faketun.go
Expand Up @@ -35,6 +35,7 @@ func (t *fakeTun) File() *os.File {
func (t *fakeTun) Close() error {
close(t.closechan)
close(t.datachan)
close(t.evchan)
return nil
}

Expand Down
13 changes: 4 additions & 9 deletions wgengine/router_freebsd.go
Expand Up @@ -55,6 +55,10 @@ func (r *freebsdRouter) Up() error {
}

func (r *freebsdRouter) SetRoutes(rs RouteSettings) error {
if rs.LocalAddr == (wgcfg.CIDR{}) {
return nil
}

var errq error

// Update the address.
Expand Down Expand Up @@ -139,15 +143,6 @@ func (r *freebsdRouter) SetRoutes(rs RouteSettings) error {
}

func (r *freebsdRouter) Close() error {
out, err := cmd("ifconfig", r.tunname, "down").CombinedOutput()
if err != nil {
r.logf("running ifconfig failed: %v\n%s", err, out)
}

if err := r.restoreResolvConf(); err != nil {
r.logf("failed to restore system resolv.conf: %v", err)
}

return nil
}

Expand Down
1 change: 1 addition & 0 deletions wgengine/userspace.go
Expand Up @@ -564,6 +564,7 @@ func (e *userspaceEngine) Close() {
e.wgdev.IpcSetOperation(r)
e.linkMon.Close()
e.router.Close()
e.wgdev.Close()
e.magicConn.Close()
close(e.waitCh)
}
Expand Down

0 comments on commit 9390a3e

Please sign in to comment.