summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorradhitya <alif@radhitya.org>2026-07-05 14:05:24 +0700
committerradhitya <alif@radhitya.org>2026-07-05 14:05:24 +0700
commit1799ef47cedcfed8c979e145783fff7c9d1944cc (patch)
tree4634846c9035339d03f783543ac83056686a9f5b /main.go
parent52a0d3845ead07f840e9e99cb4a8c3507c84ab30 (diff)
foreward upstream, in memory cache, udp listener, handler, cli flags
Diffstat (limited to 'main.go')
-rw-r--r--main.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..904f436
--- /dev/null
+++ b/main.go
@@ -0,0 +1,37 @@
+package main
+
+import (
+ "flag"
+ "log"
+ "os"
+ "os/signal"
+ "syscall"
+
+ "linum/internal/server"
+)
+
+func main() {
+ addr := flag.String("addr", ":5353", "listen address")
+ upstream := flag.String("upstream", "1.1.1.1:53", "upstream dns server")
+ blockfile := flag.String("blocklist", "blocklist.txt", "path to blocklist file")
+ flag.Parse()
+
+ srv, err := server.New(server.Config{
+ Addr: *addr,
+ Upstream: *upstream,
+ BlockFile: *blockfile,
+ })
+ if err != nil {
+ log.Fatalf("create server: %v", err)
+ }
+
+ go func() {
+ sig := make(chan os.Signal, 1)
+ signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)
+ <-sig
+ log.Println("shutting down")
+ os.Exit(0)
+ }()
+
+ log.Fatal(srv.ListenAndServe())
+}