hostapd: update to 20120326
[openwrt.git] / package / hostapd / patches / 560-indicate-features.patch
diff --git a/package/hostapd/patches/560-indicate-features.patch b/package/hostapd/patches/560-indicate-features.patch
new file mode 100644 (file)
index 0000000..7d8b1b5
--- /dev/null
@@ -0,0 +1,82 @@
+--- a/hostapd/main.c
++++ b/hostapd/main.c
+@@ -13,6 +13,7 @@
+ #include "utils/common.h"
+ #include "utils/eloop.h"
++#include "utils/build_features.h"
+ #include "crypto/random.h"
+ #include "crypto/tls.h"
+ #include "common/version.h"
+@@ -551,7 +552,7 @@ int main(int argc, char *argv[])
+       wpa_supplicant_event = hostapd_wpa_event;
+       for (;;) {
+-              c = getopt(argc, argv, "Bde:f:hKP:tv");
++              c = getopt(argc, argv, "Bde:f:hKP:tv::");
+               if (c < 0)
+                       break;
+               switch (c) {
+@@ -583,6 +584,8 @@ int main(int argc, char *argv[])
+                       wpa_debug_timestamp++;
+                       break;
+               case 'v':
++                      if (optarg)
++                              exit(!has_feature(optarg));
+                       show_version();
+                       exit(1);
+                       break;
+--- a/wpa_supplicant/main.c
++++ b/wpa_supplicant/main.c
+@@ -12,6 +12,7 @@
+ #endif /* __linux__ */
+ #include "common.h"
++#include "build_features.h"
+ #include "wpa_supplicant_i.h"
+ #include "driver_i.h"
+@@ -140,7 +141,7 @@ int main(int argc, char *argv[])
+       wpa_supplicant_fd_workaround();
+       for (;;) {
+-              c = getopt(argc, argv, "b:Bc:C:D:de:f:g:hH:i:KLNo:O:p:P:qstuvW");
++              c = getopt(argc, argv, "b:Bc:C:D:de:f:g:hH:i:KLNo:O:p:P:qstuv::W");
+               if (c < 0)
+                       break;
+               switch (c) {
+@@ -227,8 +228,12 @@ int main(int argc, char *argv[])
+                       break;
+ #endif /* CONFIG_DBUS */
+               case 'v':
+-                      printf("%s\n", wpa_supplicant_version);
+-                      exitcode = 0;
++                      if (optarg) {
++                              exitcode = !has_feature(optarg);
++                      } else {
++                              printf("%s\n", wpa_supplicant_version);
++                              exitcode = 0;
++                      }
+                       goto out;
+               case 'W':
+                       params.wait_for_monitor++;
+--- /dev/null
++++ b/src/utils/build_features.h
+@@ -0,0 +1,17 @@
++#ifndef BUILD_FEATURES_H
++#define BUILD_FEATURES_H
++
++static inline int has_feature(const char *feat)
++{
++#ifdef IEEE8021X_EAPOL
++      if (!strcmp(feat, "eap"))
++              return 1;
++#endif
++#ifdef IEEE80211N
++      if (!strcmp(feat, "11n"))
++              return 1;
++#endif
++      return 0;
++}
++
++#endif /* BUILD_FEATURES_H */
This page took 0.02373 seconds and 4 git commands to generate.