From 03781b4d0f64d806f70027369dcc5d896ace14c0 Mon Sep 17 00:00:00 2001 From: Michael Potthoff Date: Mon, 13 May 2019 18:24:22 +0200 Subject: [PATCH] Add force option to delete already existing socket file --- main.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/main.go b/main.go index b692d8a..b74be44 100644 --- a/main.go +++ b/main.go @@ -30,6 +30,7 @@ var ( namedPipe = flag.String("winssh", "", "Named pipe for use with Win32 OpenSSH") verbose = flag.Bool("verbose", false, "Enable verbose logging") systrayFlag = flag.Bool("systray", false, "Enable systray integration") + force = flag.Bool("force", false, "Force socket usage (unlink existing socket)") ) const ( @@ -209,6 +210,17 @@ func main() { }() if *unixSocket != "" { + if *force { + // If the socket file already exists then unlink it + _, err := os.Stat(*unixSocket) + if err == nil || !os.IsNotExist(err) { + err = syscall.Unlink(*unixSocket) + if err != nil { + log.Fatalf("Failed to unlink socket %s, error '%s'\n", *unixSocket, err) + } + } + } + unix, err = net.Listen("unix", *unixSocket) if err != nil { log.Fatalf("Could not open socket %s, error '%s'\n", *unixSocket, err)