Root/package/network/services/hostapd/patches/560-indicate-features.patch

1--- a/hostapd/main.c
2+++ b/hostapd/main.c
3@@ -13,6 +13,7 @@
4 
5 #include "utils/common.h"
6 #include "utils/eloop.h"
7+#include "utils/build_features.h"
8 #include "crypto/random.h"
9 #include "crypto/tls.h"
10 #include "common/version.h"
11@@ -560,7 +561,7 @@ int main(int argc, char *argv[])
12 
13     wpa_supplicant_event = hostapd_wpa_event;
14     for (;;) {
15- c = getopt(argc, argv, "Bde:f:hKP:tvg:");
16+ c = getopt(argc, argv, "Bde:f:hKP:tg:v::");
17         if (c < 0)
18             break;
19         switch (c) {
20@@ -592,6 +593,8 @@ int main(int argc, char *argv[])
21             wpa_debug_timestamp++;
22             break;
23         case 'v':
24+ if (optarg)
25+ exit(!has_feature(optarg));
26             show_version();
27             exit(1);
28             break;
29--- a/wpa_supplicant/main.c
30+++ b/wpa_supplicant/main.c
31@@ -12,6 +12,7 @@
32 #endif /* __linux__ */
33 
34 #include "common.h"
35+#include "build_features.h"
36 #include "wpa_supplicant_i.h"
37 #include "driver_i.h"
38 
39@@ -156,7 +157,7 @@ int main(int argc, char *argv[])
40 
41     for (;;) {
42         c = getopt(argc, argv,
43- "b:Bc:C:D:de:f:g:hH:i:KLNo:O:p:P:qsTtuvW");
44+ "b:Bc:C:D:de:f:g:hH:i:KLNo:O:p:P:qsTtuv::W");
45         if (c < 0)
46             break;
47         switch (c) {
48@@ -248,8 +249,12 @@ int main(int argc, char *argv[])
49             break;
50 #endif /* CONFIG_DBUS */
51         case 'v':
52- printf("%s\n", wpa_supplicant_version);
53- exitcode = 0;
54+ if (optarg) {
55+ exitcode = !has_feature(optarg);
56+ } else {
57+ printf("%s\n", wpa_supplicant_version);
58+ exitcode = 0;
59+ }
60             goto out;
61         case 'W':
62             params.wait_for_monitor++;
63--- /dev/null
64+++ b/src/utils/build_features.h
65@@ -0,0 +1,17 @@
66+#ifndef BUILD_FEATURES_H
67+#define BUILD_FEATURES_H
68+
69+static inline int has_feature(const char *feat)
70+{
71+#ifdef IEEE8021X_EAPOL
72+ if (!strcmp(feat, "eap"))
73+ return 1;
74+#endif
75+#ifdef IEEE80211N
76+ if (!strcmp(feat, "11n"))
77+ return 1;
78+#endif
79+ return 0;
80+}
81+
82+#endif /* BUILD_FEATURES_H */
83

Archive Download this file



interactive