Pi66

sta
minimal & simple status monitoring app.
git clone https://git.pi66.xyz/sta

← back to log

fix: use temp socket for check

author: pi66
date: 2026-05-21 18:59
hash: 562e1d2322febbc218cfdcf8fa76d72a4a958da1

Diffstat:

M

sta.c
11 +++++++++++++++++++-----------
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
diff --git a/sta.c b/sta.c
index d6e010d..3e4b66b 100644
--- a/sta.c
+++ b/sta.c
@@ -220,10 +220,13 @@ int main(int argc, char const *argv[])
    for (int i = 1; i < argc; ++i) {
          if (strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "--server") == 0) {
            if (access(SOCKET_PATH, F_OK) == 0){
-               if ( connect(sock, (struct sockaddr *)&addr, sizeof(addr) ) == 0 )
-                   die("Socket: socket exists and connectable.");      
-           }else 
-             unlink(SOCKET_PATH);
+               int checking_sock = socket(AF_UNIX, SOCK_STREAM, 0);
+               if (checking_sock >= 0) {
+                 if (connect(checking_sock, (struct sockaddr *)&addr, sizeof(addr)) == 0)
+                     die("Socket: socket exists and connectable.");        
+                 close(checking_sock);
+               }
+           }
            run_server(&addr, sock, list);
        }
    }