git: 92caff2b1b6b - main - wlanwatch: clean up to compile / run
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 28 Feb 2025 02:50:09 UTC
The branch main has been updated by adrian:
URL: https://cgit.FreeBSD.org/src/commit/?id=92caff2b1b6b3aa5da49a2cb90f3c787fc11d17e
commit 92caff2b1b6b3aa5da49a2cb90f3c787fc11d17e
Author: Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2025-02-27 02:37:42 +0000
Commit: Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2025-02-28 02:49:49 +0000
wlanwatch: clean up to compile / run
* add static where needed
* delete old unused flags, dating back to the initial commit from Sam
* indirect through void * where appropriate, to avoid LLVM alignment
errors
* PRIu64 where needed
This does work, but it currently doesn't track the ifname itself,
so we see ifindexes, not ifnames:
Wed Feb 26 18:35:59 RTM_IEEE80211: if# 2, scan complete
Wed Feb 26 18:35:59 RTM_IEEE80211: if# 2, associate with 30:de:4b:db:46:0a
Wed Feb 26 18:35:59 RTM_IFINFO: if# 2, link: up, flags:<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
.. but it does work!
Differential Revision: https://reviews.freebsd.org/D49149
---
tools/tools/net80211/wlanwatch/wlanwatch.c | 31 ++++++++++++++----------------
1 file changed, 14 insertions(+), 17 deletions(-)
diff --git a/tools/tools/net80211/wlanwatch/wlanwatch.c b/tools/tools/net80211/wlanwatch/wlanwatch.c
index 6e3bfd798c2d..ec6d85cc1ffb 100644
--- a/tools/tools/net80211/wlanwatch/wlanwatch.c
+++ b/tools/tools/net80211/wlanwatch/wlanwatch.c
@@ -63,6 +63,7 @@
#include <sysexits.h>
#include <unistd.h>
#include <ifaddrs.h>
+#include <inttypes.h>
/* XXX */
enum ieee80211_notify_cac_event {
@@ -74,7 +75,7 @@ enum ieee80211_notify_cac_event {
static void print_rtmsg(struct rt_msghdr *rtm, int msglen);
-int nflag = 0;
+static int nflag = 0;
int
main(int argc, char *argv[])
@@ -121,22 +122,17 @@ bprintf(FILE *fp, int b, char *s)
putc('>', fp);
}
-char metricnames[] =
-"\011pksent\010rttvar\7rtt\6ssthresh\5sendpipe\4recvpipe\3expire\2hopcount"
-"\1mtu";
-char routeflags[] =
-"\1UP\2GATEWAY\3HOST\4REJECT\5DYNAMIC\6MODIFIED\7DONE\010MASK_PRESENT"
-"\011CLONING\012XRESOLVE\013LLINFO\014STATIC\015BLACKHOLE\016b016"
-"\017PROTO2\020PROTO1\021PRCLONING\022WASCLONED\023PROTO3\024CHAINDELETE"
-"\025PINNED\026LOCAL\027BROADCAST\030MULTICAST";
-char ifnetflags[] =
+static char ifnetflags[] =
"\1UP\2BROADCAST\3DEBUG\4LOOPBACK\5PTP\6b6\7RUNNING\010NOARP"
"\011PPROMISC\012ALLMULTI\013OACTIVE\014SIMPLEX\015LINK0\016LINK1"
"\017LINK2\020MULTICAST";
-char addrnames[] =
+static char addrnames[] =
"\1DST\2GATEWAY\3NETMASK\4GENMASK\5IFP\6IFA\7AUTHOR\010BRD";
-char defaultname[] = "default";
+static char defaultname[] = "default";
+
+#define SOCKADDR_CNV_CONST(sa, sa_fam) \
+ ((struct sa_fam *)(void *) (sa))
static const char *
routename(struct sockaddr *sa)
@@ -165,7 +161,7 @@ routename(struct sockaddr *sa)
{ struct in_addr in;
char *cp;
- in = ((struct sockaddr_in *)sa)->sin_addr;
+ in = SOCKADDR_CNV_CONST(sa, sockaddr_in)->sin_addr;
cp = NULL;
if (in.s_addr == INADDR_ANY || sa->sa_len < 4)
@@ -220,10 +216,10 @@ routename(struct sockaddr *sa)
#endif
case AF_LINK:
- return (link_ntoa((struct sockaddr_dl *)sa));
+ return (link_ntoa(SOCKADDR_CNV_CONST(sa, sockaddr_dl)));
default:
- { u_short *s = (u_short *)sa;
+ { u_short *s = (u_short *)(void *)sa;
u_short *slim = s + ((sa->sa_len + 1) >> 1);
char *cp = line + sprintf(line, "(%d)", sa->sa_family);
char *cpe = line + sizeof(line);
@@ -340,7 +336,7 @@ print_rtmsg(struct rt_msghdr *rtm, int msglen)
fflush(stdout);
break;
case RTM_IEEE80211:
-#define V(type) ((struct type *)(&ifan[1]))
+#define V(type) ((struct type *)(void *)(&ifan[1]))
ifan = (struct if_announcemsghdr *)rtm;
printf("%.19s RTM_IEEE80211: if# %d, ", cnow, ifan->ifan_index);
switch (ifan->ifan_what) {
@@ -373,7 +369,8 @@ print_rtmsg(struct rt_msghdr *rtm, int msglen)
printf("replay failure: src %s "
, ether_sprintf(V(ieee80211_replay_event)->iev_src)
);
- printf("dst %s cipher %u keyix %u keyrsc %llu rsc %llu"
+ printf("dst %s cipher %u keyix %u keyrsc %" PRIu64
+ " rsc %" PRIu64
, ether_sprintf(V(ieee80211_replay_event)->iev_dst)
, V(ieee80211_replay_event)->iev_cipher
, V(ieee80211_replay_event)->iev_keyix