summaryrefslogtreecommitdiff
path: root/cmd/tunneld/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/tunneld/main.go')
-rw-r--r--cmd/tunneld/main.go28
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")