Pi66

Home | Repos | About | Blog | Gaza

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

About | Files | Commits | Refs | License


fix: use temp socket for check

Author: pi66
Date: 2026-05-21 18:59
commit: 562e1d23

Stat

M sta.c 11 +7 -4

Diff

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);

...
Show all
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);
 		}
 	}

// Created by Pi66

// Copyright ©Pi66 2026