From aa57cfdf36407148af613e5633e264a22c4459de Mon Sep 17 00:00:00 2001
From: sinanmohd <sinan@sinanmohd.com>
Date: Sat, 6 Jul 2024 17:57:56 +0530
Subject: api: init

---
 api/main.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 api/main.go

(limited to 'api')

diff --git a/api/main.go b/api/main.go
new file mode 100644
index 0000000..5ce05c1
--- /dev/null
+++ b/api/main.go
@@ -0,0 +1,46 @@
+package api
+
+import (
+	"log"
+	"net"
+
+	"sinanmohd.com/redq/usage"
+)
+
+const sockPath = "/tmp/redq_ebpf.sock"
+
+type Api struct {
+	sock net.Listener
+}
+
+func (a *Api) Init() error {
+	var err error
+
+	a.sock, err = net.Listen("unix", sockPath)
+	if err != nil {
+		log.Printf("listening on unix socket: %s", err)
+		return err
+	}
+
+	return nil
+}
+
+func handleConn(conn net.Conn) {
+	defer conn.Close()
+}
+
+func (a *Api) Run(u *usage.Usage) {
+	for {
+		conn, err := a.sock.Accept()
+		if err != nil {
+			log.Printf("accepting connection: %s", err)
+			continue
+		}
+
+		go handleConn(conn)
+	}
+}
+
+func (a *Api) CleanUp() {
+	a.sock.Close()
+}
-- 
cgit v1.2.3