summaryrefslogtreecommitdiff
path: root/api/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'api/main.go')
-rw-r--r--api/main.go46
1 files changed, 46 insertions, 0 deletions
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()
+}