From 2eb09fc6d93107c84757861e35aab47afd55168d Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Wed, 26 Feb 2020 04:41:09 +0300 Subject: create unix socket in /run --- cmd/tunneld/main.go | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'cmd/tunneld/main.go') diff --git a/cmd/tunneld/main.go b/cmd/tunneld/main.go index 1ffb99e..cd8afda 100644 --- a/cmd/tunneld/main.go +++ b/cmd/tunneld/main.go @@ -1,11 +1,14 @@ package main import ( + "errors" "flag" "log" "os" "os/signal" + "path" "syscall" + "tunnel/pkg/config" "tunnel/pkg/server" ) @@ -39,19 +42,34 @@ func sighandler(c chan os.Signal, s *server.Server) { } } +func getSocketPath() string { + s, err := config.GetSocketPath() + if err != nil { + log.Fatal(err) + } + + if err := os.Mkdir(path.Dir(s), 0700); err != nil { + if !errors.Is(err, syscall.EEXIST) { + log.Fatal(err) + } + } + + return s +} + func main() { flag.Parse() initLog() - var c = make(chan os.Signal) - - signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) - - s, err := server.New() + s, err := server.New(getSocketPath()) if err != nil { log.Fatal(err) } + var c = make(chan os.Signal) + + signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) + go sighandler(c, s) log.Print("ready") -- cgit v1.2.3-70-g09d2