From 81661cc8deaacbff3497f0c9ef2625e98257ef76 Mon Sep 17 00:00:00 2001 From: radhitya Date: Sun, 21 Jun 2026 13:11:55 +0700 Subject: dot, readme --- main.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'main.go') diff --git a/main.go b/main.go index 9a341fb..aace165 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "crypto/tls" "fmt" "linum/internal/blocklist" "linum/internal/cache" @@ -65,6 +66,19 @@ func main() { } defer c.Stop() + var tlsCfg *tls.Config + if cfg.Server.ListenDoT != "" { + cert, err := tls.LoadX509KeyPair(cfg.TLS.Cert, cfg.TLS.Key) + if err != nil { + logger.Error("load tls cert failed", "err", err) + os.Exit(1) + } + tlsCfg = &tls.Config{ + Certificates: []tls.Certificate{cert}, + NextProtos: []string{"dot"}, + } + logger.Info("dot listener configured", "addr", cfg.Server.ListenDoT) + } var bl *blocklist.Blocklist if len(cfg.Blocklist.Files) > 0 || len(cfg.Blocklist.URLs) > 0 { resp := blocklist.ResponseZeroIP @@ -101,7 +115,7 @@ func main() { ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stop() - srv, err := server.New(cfg.Server.ListenUDP, cfg.Server.ListenTCP, cfg.Server.ListenDOH, logger, r, c, bl, cfg) + srv, err := server.New(cfg.Server.ListenUDP, cfg.Server.ListenTCP, cfg.Server.ListenDOH, cfg.Server.ListenDoT, tlsCfg, logger, r, c, bl, cfg) if err != nil { logger.Error("create server failed", "err", err) os.Exit(1) @@ -116,6 +130,7 @@ func main() { "udp", cfg.Server.ListenUDP, "tcp", cfg.Server.ListenTCP, "doh", cfg.Server.ListenDOH, + "dot", cfg.Server.ListenDoT, ) if err := srv.Run(ctx); err != nil && err != context.Canceled { -- cgit v1.2.3