From 1d1a15075b93815a2d006167d433c03d1abef419 Mon Sep 17 00:00:00 2001 From: radhitya Date: Sun, 7 Jun 2026 17:05:59 +0700 Subject: first commit --- main.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..5d9e526 --- /dev/null +++ b/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "context" + "log/slog" + "os" + "os/signal" + "syscall" + + "sdns/internal/server" +) + +func main() { + logger := slog.New(slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{ + Level: slog.LevelInfo, + })) + + addr := os.Getenv("SDNS_LISTEN") + if addr == "" { + addr = ":5353" + } + + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) + defer stop() + + srv, err := server.New(addr, logger) + if err != nil { + logger.Error("create server failed", "err", err) + os.Exit(1) + } + defer srv.Close() + + logger.Info("sdns starting", "addr", addr) + + if err := srv.Run(ctx); err != nil && err != context.Canceled { + logger.Error("server stopped with error", "err", err) + os.Exit(1) + } + logger.Info("sdns stopped cleanly") +} -- cgit v1.2.3