]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
Cleanup socket file
authorJason A. Donenfeld <Jason@zx2c4.com>
Mon, 14 May 2018 10:46:06 +0000 (12:46 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 14 May 2018 11:05:37 +0000 (13:05 +0200)
uapi_darwin.go
uapi_linux.go

index 0f6d9047b156247efae2edfa46409cd547a8645c..a5f2c3b38b3b3ae7b1ebc01b0e765a4c05d842fd 100644 (file)
@@ -57,7 +57,7 @@ func (l *UAPIListener) Close() error {
 }
 
 func (l *UAPIListener) Addr() net.Addr {
-       return nil
+       return l.listener.Addr()
 }
 
 func UAPIListen(name string, file *os.File) (net.Listener, error) {
@@ -75,6 +75,10 @@ func UAPIListen(name string, file *os.File) (net.Listener, error) {
                connErr:  make(chan error, 1),
        }
 
+       if unixListener, ok := listener.(*net.UnixListener); ok {
+               unixListener.SetUnlinkOnClose(true)
+       }
+
        socketPath := path.Join(
                socketDirectory,
                fmt.Sprintf(socketName, name),
index 67024e996a558855bcda6da608861b547b07b3ec..45be0f51a328e69b2d4de210e3aa96bb702cf9a1 100644 (file)
@@ -46,8 +46,8 @@ func (l *UAPIListener) Accept() (net.Conn, error) {
 
 func (l *UAPIListener) Close() error {
        err1 := unix.Close(l.inotifyFd)
-       err2 := l.listener.Close()
-       err3 := l.inotifyRWCancel.Cancel()
+       err2 := l.inotifyRWCancel.Cancel()
+       err3 := l.listener.Close()
        if err1 != nil {
                return err1
        }
@@ -58,7 +58,7 @@ func (l *UAPIListener) Close() error {
 }
 
 func (l *UAPIListener) Addr() net.Addr {
-       return nil
+       return l.listener.Addr()
 }
 
 func UAPIListen(name string, file *os.File) (net.Listener, error) {
@@ -70,6 +70,10 @@ func UAPIListen(name string, file *os.File) (net.Listener, error) {
                return nil, err
        }
 
+       if unixListener, ok := listener.(*net.UnixListener); ok {
+               unixListener.SetUnlinkOnClose(true)
+       }
+
        uapi := &UAPIListener{
                listener: listener,
                connNew:  make(chan net.Conn, 1),