summaryrefslogtreecommitdiff
path: root/sutils/0001-essid.c-change-put_status-to-return-int.patch
blob: c9882a8ec2c94914b98270676b555a17ce118c7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
From dcc55996ba47675e3c2d1cd562972be370a0531d Mon Sep 17 00:00:00 2001
From: John Vogel <jvogel4@stny.rr.com>
Date: Mon, 9 Oct 2023 10:29:14 -0400
Subject: [PATCH 1/4] essid.c: change put_status to return int

Modify main loop to break out if error and return failure if so.
---
 essid.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/essid.c b/essid.c
index 4a768f0..de45164 100644
--- a/essid.c
+++ b/essid.c
@@ -19,17 +19,19 @@ char *format = FORMAT;
 int interval = INTERVAL;
 char name[IW_ESSID_MAX_SIZE + 1] = {0};
 
-void put_status(int fd, struct iwreq *rqt)
+int put_status(int fd, struct iwreq *rqt)
 {
     rqt->u.essid.pointer = name;
     rqt->u.essid.length = IW_ESSID_MAX_SIZE + 1;
     if (ioctl(fd, SIOCGIWESSID, rqt) == -1) {
         perror("ioctl");
-        exit(EXIT_FAILURE);
+        return -1;
     }
     printf(format, name);
     printf("\n");
     fflush(stdout);
+
+    return 0;
 }
 
 int main(int argc, char *argv[])
@@ -71,12 +73,15 @@ int main(int argc, char *argv[])
 
     if (snoop)
         while (true) {
-            put_status(sock_fd, &request);
+            if (put_status(sock_fd, &request) == -1) {
+                name[0] = '\0';
+		break;
+            }
             sleep(interval);
-            name[0] = '\0';
         }
     else
-        put_status(sock_fd, &request);
+        if (put_status(sock_fd, &request) == -1)
+            name[0] = '\0';
 
     close(sock_fd);
     if (strlen(name) > 0)
-- 
2.42.0