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
|