From 38bf443cb2f52bd4cc822e69f9339094d846396f Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Sun, 7 Jul 2024 10:46:54 +0530 Subject: cmd/redq -> cmd --- cmd/main.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 cmd/main.go (limited to 'cmd/main.go') diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..6597749 --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,58 @@ +package main + +import ( + "context" + "log" + "net" + "os" + "os/signal" + "syscall" + + "github.com/jackc/pgx/v5" + "sinanmohd.com/redq/api" + "sinanmohd.com/redq/db" + "sinanmohd.com/redq/usage" + "sinanmohd.com/redq/dns" +) + +func main() { + iface, err := net.InterfaceByName("wlan0") + if err != nil { + log.Fatalf("lookup network: %s", err) + } + + ctx := context.Background() + conn, err := pgx.Connect(ctx, "user=redq_ebpf dbname=redq_ebpf") + if err != nil { + log.Fatalf("connecting database: %s", err) + } + defer conn.Close(ctx) + queries := db.New(conn) + + d, err := dns.New() + if err != nil { + os.Exit(0) + } + a, err := api.New() + if err != nil { + os.Exit(0) + } + u, err := usage.New(iface) + if err != nil { + os.Exit(0) + } + + sigs := make(chan os.Signal, 1) + signal.Notify(sigs, os.Interrupt, os.Kill, syscall.SIGTERM) + go func() { + <-sigs + usage.Close(u, queries, ctx) + api.Close(a) + os.Exit(0) + }() + + go u.Run(iface, queries, ctx) + go d.Run() + + a.Run(u, queries, ctx) +} -- cgit v1.2.3