diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-26 04:41:09 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-26 04:41:09 +0300 |
| commit | 2eb09fc6d93107c84757861e35aab47afd55168d (patch) | |
| tree | 926668a081ef92ec3e0ab1525e02e5b60dc975a2 /cmd/tunneld | |
| parent | e6631acaa5af979d87645d74997955a1304cd648 (diff) | |
create unix socket in /run
Diffstat (limited to 'cmd/tunneld')
| -rw-r--r-- | cmd/tunneld/main.go | 28 |
1 files changed, 23 insertions, 5 deletions
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") |
