mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 05:24:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- 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"
 | |
|  
 | |
| @@ -145,7 +146,7 @@ int main(int argc, char *argv[])
 | |
|  
 | |
|  	for (;;) {
 | |
|  		c = getopt(argc, argv,
 | |
| -			   "b:Bc:C:D:de:f:g:hH:i:KLNo:O:p:P:qsTtuvW");
 | |
| +			   "b:Bc:C:D:de:f:g:hH:i:KLNo:O:p:P:qsTtuv::W");
 | |
|  		if (c < 0)
 | |
|  			break;
 | |
|  		switch (c) {
 | |
| @@ -237,8 +238,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 */
 |