From ff38bcacbb176a44b1255e1c4659e52dff29b6ab Mon Sep 17 00:00:00 2001
From: Daniel Barlow <dan@telent.net>
Date: Wed, 21 Aug 2024 23:24:13 +0100
Subject: [PATCH] improve devout error reporting

---
 pkgs/devout/devout.fnl | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/pkgs/devout/devout.fnl b/pkgs/devout/devout.fnl
index a5cc925c..f6e1d1ae 100644
--- a/pkgs/devout/devout.fnl
+++ b/pkgs/devout/devout.fnl
@@ -129,12 +129,11 @@
 
 
 (fn unix-socket [name]
-  (let [addr (string.pack "=Hz" AF_LOCAL name)]
-    (case (ll.socket AF_LOCAL SOCK_STREAM 0)
-      fd (case (ll.bind fd addr)
-           0 (doto fd (ll.listen 32))
-           (nil err) (values nil err))
-      (nil err) (values nil err))))
+  (let [addr (string.pack "=Hz" AF_LOCAL name)
+        fd (check-errno (ll.socket AF_LOCAL SOCK_STREAM 0))]
+    (check-errno (ll.bind fd addr))
+    (check-errno (ll.listen fd 32))
+    fd))
 
 (fn pollfds-for [fds]
   (icollect [_ v (ipairs fds)]
@@ -173,10 +172,10 @@
     (nil err) (do (print err) false)))
 
 (fn open-netlink [groups]
-  (match (ll.socket AF_NETLINK SOCK_RAW NETLINK_KOBJECT_UEVENT)
-    fd (doto fd (ll.bind (string.pack "I2I2I4I4" ; family pad pid groups
-                                      AF_NETLINK 0 0 groups)))
-    (nil errno) (values nil errno)))
+  (let [fd (check-errno (ll.socket AF_NETLINK SOCK_RAW NETLINK_KOBJECT_UEVENT))]
+    (check-errno (ll.bind fd (string.pack "I2I2I4I4" ; family pad pid groups
+                                          AF_NETLINK 0 0 groups)))
+    fd))
 
 (fn event-loop []
   (let [fds {}]