mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			360 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			360 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/iwlist.c
 | |
| +++ b/iwlist.c
 | |
| @@ -58,7 +58,6 @@ typedef struct iw_auth_descr
 | |
|   * Maybe this should go in iwlib.c ?
 | |
|   */
 | |
|  
 | |
| -#ifndef WE_ESSENTIAL
 | |
|  #define IW_ARRAY_LEN(x) (sizeof(x)/sizeof((x)[0]))
 | |
|  
 | |
|  //static const struct iwmask_name iw_enc_mode_name[] = {
 | |
| @@ -161,11 +160,8 @@ static const char *	iw_ie_key_mgmt_name[
 | |
|  };
 | |
|  #define	IW_IE_KEY_MGMT_NUM	IW_ARRAY_LEN(iw_ie_key_mgmt_name)
 | |
|  
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
| -
 | |
|  /************************* WPA SUBROUTINES *************************/
 | |
|  
 | |
| -#ifndef WE_ESSENTIAL
 | |
|  /*------------------------------------------------------------------*/
 | |
|  /*
 | |
|   * Print all names corresponding to a mask.
 | |
| @@ -431,7 +427,6 @@ iw_print_gen_ie(unsigned char *	buffer,
 | |
|        offset += buffer[offset+1] + 2;
 | |
|      }
 | |
|  }
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
|  
 | |
|  /***************************** SCANNING *****************************/
 | |
|  /*
 | |
| @@ -585,12 +580,10 @@ print_scanning_token(struct stream_descr
 | |
|  		     &event->u.qual, iw_range, has_range);
 | |
|        printf("                    %s\n", buffer);
 | |
|        break;
 | |
| -#ifndef WE_ESSENTIAL
 | |
|      case IWEVGENIE:
 | |
|        /* Informations Elements are complex, let's do only some of them */
 | |
|        iw_print_gen_ie(event->u.data.pointer, event->u.data.length);
 | |
|        break;
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
|      case IWEVCUSTOM:
 | |
|        {
 | |
|  	char custom[IW_CUSTOM_MAX+1];
 | |
| @@ -1302,7 +1295,6 @@ print_pm_info(int		skfd,
 | |
|    return(0);
 | |
|  }
 | |
|  
 | |
| -#ifndef WE_ESSENTIAL
 | |
|  /************************** TRANSMIT POWER **************************/
 | |
|  
 | |
|  /*------------------------------------------------------------------*/
 | |
| @@ -1405,6 +1397,7 @@ print_txpower_info(int		skfd,
 | |
|    return(0);
 | |
|  }
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|  /*********************** RETRY LIMIT/LIFETIME ***********************/
 | |
|  
 | |
|  /*------------------------------------------------------------------*/
 | |
| @@ -2060,8 +2053,8 @@ static const struct iwlist_entry iwlist_
 | |
|    { "encryption",	print_keys_info,	0, NULL },
 | |
|    { "keys",		print_keys_info,	0, NULL },
 | |
|    { "power",		print_pm_info,		0, NULL },
 | |
| -#ifndef WE_ESSENTIAL
 | |
|    { "txpower",		print_txpower_info,	0, NULL },
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    { "retry",		print_retry_info,	0, NULL },
 | |
|    { "ap",		print_ap_info,		0, NULL },
 | |
|    { "accesspoints",	print_ap_info,		0, NULL },
 | |
| --- a/iwconfig.c
 | |
| +++ b/iwconfig.c
 | |
| @@ -106,16 +106,6 @@ get_info(int			skfd,
 | |
|      if(wrq.u.data.length > 1)
 | |
|        info->has_nickname = 1;
 | |
|  
 | |
| -  if((info->has_range) && (info->range.we_version_compiled > 9))
 | |
| -    {
 | |
| -      /* Get Transmit Power */
 | |
| -      if(iw_get_ext(skfd, ifname, SIOCGIWTXPOW, &wrq) >= 0)
 | |
| -	{
 | |
| -	  info->has_txpower = 1;
 | |
| -	  memcpy(&(info->txpower), &(wrq.u.txpower), sizeof(iwparam));
 | |
| -	}
 | |
| -    }
 | |
| -
 | |
|    /* Get sensitivity */
 | |
|    if(iw_get_ext(skfd, ifname, SIOCGIWSENS, &wrq) >= 0)
 | |
|      {
 | |
| @@ -132,6 +122,17 @@ get_info(int			skfd,
 | |
|  	  memcpy(&(info->retry), &(wrq.u.retry), sizeof(iwparam));
 | |
|  	}
 | |
|      }
 | |
| +#endif	/* WE_ESSENTIAL */
 | |
| +
 | |
| +  if((info->has_range) && (info->range.we_version_compiled > 9))
 | |
| +    {
 | |
| +      /* Get Transmit Power */
 | |
| +      if(iw_get_ext(skfd, ifname, SIOCGIWTXPOW, &wrq) >= 0)
 | |
| +	{
 | |
| +	  info->has_txpower = 1;
 | |
| +	  memcpy(&(info->txpower), &(wrq.u.txpower), sizeof(iwparam));
 | |
| +	}
 | |
| +    }
 | |
|  
 | |
|    /* Get RTS threshold */
 | |
|    if(iw_get_ext(skfd, ifname, SIOCGIWRTS, &wrq) >= 0)
 | |
| @@ -146,7 +147,6 @@ get_info(int			skfd,
 | |
|        info->has_frag = 1;
 | |
|        memcpy(&(info->frag), &(wrq.u.frag), sizeof(iwparam));
 | |
|      }
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
|  
 | |
|    return(0);
 | |
|  }
 | |
| @@ -269,7 +269,6 @@ display_info(struct wireless_info *	info
 | |
|        printf("Bit Rate%c%s   ", (info->bitrate.fixed ? '=' : ':'), buffer);
 | |
|      }
 | |
|  
 | |
| -#ifndef WE_ESSENTIAL
 | |
|    /* Display the Transmit Power */
 | |
|    if(info->has_txpower)
 | |
|      {
 | |
| @@ -286,6 +285,7 @@ display_info(struct wireless_info *	info
 | |
|        printf("Tx-Power%c%s   ", (info->txpower.fixed ? '=' : ':'), buffer);
 | |
|      }
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    /* Display sensitivity */
 | |
|    if(info->has_sens)
 | |
|      {
 | |
| @@ -340,6 +340,7 @@ display_info(struct wireless_info *	info
 | |
|        printf("   ");
 | |
|        tokens += 5;	/* Between 3 and 5, depend on flags */
 | |
|      }
 | |
| +#endif	/* WE_ESSENTIAL */
 | |
|  
 | |
|    /* Display the RTS threshold */
 | |
|    if(info->has_rts)
 | |
| @@ -383,7 +384,6 @@ display_info(struct wireless_info *	info
 | |
|    /* Formating */
 | |
|    if(tokens > 0)
 | |
|      printf("\n          ");
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
|  
 | |
|    /* Display encryption information */
 | |
|    /* Note : we display only the "current" key, use iwlist to list all keys */
 | |
| @@ -1196,6 +1196,7 @@ set_nwid_info(int		skfd,
 | |
|    /* 1 arg */
 | |
|    return(1);
 | |
|  }
 | |
| +#endif	/* WE_ESSENTIAL */
 | |
|  
 | |
|  /*------------------------------------------------------------------*/
 | |
|  /*
 | |
| @@ -1362,6 +1363,7 @@ set_txpower_info(int		skfd,
 | |
|    return(i);
 | |
|  }
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|  /*------------------------------------------------------------------*/
 | |
|  /*
 | |
|   * Set Sensitivity
 | |
| @@ -1459,6 +1461,7 @@ set_retry_info(int		skfd,
 | |
|    /* Var args */
 | |
|    return(i);
 | |
|  }
 | |
| +#endif	/* WE_ESSENTIAL */
 | |
|  
 | |
|  /*------------------------------------------------------------------*/
 | |
|  /*
 | |
| @@ -1565,6 +1568,7 @@ set_frag_info(int		skfd,
 | |
|    return(1);
 | |
|  }
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|  /*------------------------------------------------------------------*/
 | |
|  /*
 | |
|   * Set Modulation
 | |
| @@ -1719,21 +1723,21 @@ static const struct iwconfig_entry iwcon
 | |
|  	"Set Nickname",			"NNN" },
 | |
|    { "nwid",		set_nwid_info,		1,	SIOCSIWNWID,
 | |
|  	"Set NWID",			"{NN|on|off}" },
 | |
| -  { "ap",		set_apaddr_info,	1,	SIOCSIWAP,
 | |
| -	"Set AP Address",		"{N|off|auto}" },
 | |
| -  { "txpower",		set_txpower_info,	1,	SIOCSIWTXPOW,
 | |
| -	"Set Tx Power",			"{NmW|NdBm|off|auto}" },
 | |
|    { "sens",		set_sens_info,		1,	SIOCSIWSENS,
 | |
|  	"Set Sensitivity",		"N" },
 | |
| +  { "modulation",	set_modulation_info,	1,	SIOCGIWMODUL,
 | |
| +	"Set Modulation",		"{11g|11a|CCK|OFDMg|...}" },
 | |
|    { "retry",		set_retry_info,		1,	SIOCSIWRETRY,
 | |
|  	"Set Retry Limit",		"{limit N|lifetime N}" },
 | |
| +#endif	/* WE_ESSENTIAL */
 | |
| +  { "ap",		set_apaddr_info,	1,	SIOCSIWAP,
 | |
| +	"Set AP Address",		"{N|off|auto}" },
 | |
| +  { "txpower",		set_txpower_info,	1,	SIOCSIWTXPOW,
 | |
| +	"Set Tx Power",			"{NmW|NdBm|off|auto}" },
 | |
|    { "rts",		set_rts_info,		1,	SIOCSIWRTS,
 | |
|  	"Set RTS Threshold",		"{N|auto|fixed|off}" },
 | |
|    { "frag",		set_frag_info,		1,	SIOCSIWFRAG,
 | |
|  	"Set Fragmentation Threshold",	"{N|auto|fixed|off}" },
 | |
| -  { "modulation",	set_modulation_info,	1,	SIOCGIWMODUL,
 | |
| -	"Set Modulation",		"{11g|11a|CCK|OFDMg|...}" },
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
|    { "commit",		set_commit_info,	0,	SIOCSIWCOMMIT,
 | |
|  	"Commit changes",		"" },
 | |
|    { NULL, NULL, 0, 0, NULL, NULL },
 | |
| --- a/iwmulticall.c
 | |
| +++ b/iwmulticall.c
 | |
| @@ -81,7 +81,7 @@ extern int
 | |
|  #define main(args...) main_iwspy(args)
 | |
|  #include "iwspy.c"
 | |
|  #undef main
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
| +#endif
 | |
|  
 | |
|  /* Get iwpriv in there. Mandatory for HostAP and some other drivers. */
 | |
|  #define main(args...) main_iwpriv(args)
 | |
| @@ -90,12 +90,14 @@ extern int
 | |
|  #undef iw_usage
 | |
|  #undef main
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|  /* Do we really need iwgetid ? Well, it's not like it's a big one */
 | |
|  #define main(args...) main_iwgetid(args)
 | |
|  #define iw_usage(args...) iwgetid_usage(args)
 | |
|  #include "iwgetid.c"
 | |
|  #undef iw_usage
 | |
|  #undef main
 | |
| +#endif
 | |
|  
 | |
|  /* iwevent is useless for most people, don't grab it ? */
 | |
|  
 | |
| @@ -131,11 +133,13 @@ main(int	argc,
 | |
|  #ifndef WE_ESSENTIAL
 | |
|    if(!strcmp(call_name, "iwspy"))
 | |
|      return(main_iwspy(argc, argv));
 | |
| -#endif	/* WE_ESSENTIAL */
 | |
| +#endif
 | |
|    if(!strcmp(call_name, "iwpriv"))
 | |
|      return(main_iwpriv(argc, argv));
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    if(!strcmp(call_name, "iwgetid"))
 | |
|      return(main_iwgetid(argc, argv));
 | |
| +#endif
 | |
|  
 | |
|    /* Uh oh... Not supposed to come here. */
 | |
|    printf("iwmulticall : you are not supposed to call me this way...\n");
 | |
| --- a/iwlib.c
 | |
| +++ b/iwlib.c
 | |
| @@ -113,6 +113,7 @@ const struct iw_modul_descr	iw_modul_lis
 | |
|    { IW_MODUL_11A, "11a", "IEEE 802.11a (5 GHz, up to 54 Mb/s)" },
 | |
|    { IW_MODUL_11B, "11b", "IEEE 802.11b (2.4 GHz, up to 11 Mb/s)" },
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    /* Proprietary aggregates */
 | |
|    { IW_MODUL_TURBO | IW_MODUL_11A, "turboa",
 | |
|      "Atheros turbo mode at 5 GHz (up to 108 Mb/s)" },
 | |
| @@ -120,6 +121,7 @@ const struct iw_modul_descr	iw_modul_lis
 | |
|      "Atheros turbo mode at 2.4 GHz (up to 108 Mb/s)" },
 | |
|    { IW_MODUL_PBCC | IW_MODUL_11B, "11+",
 | |
|      "TI 802.11+ (2.4 GHz, up to 22 Mb/s)" },
 | |
| +#endif
 | |
|  
 | |
|    /* Individual modulations */
 | |
|    { IW_MODUL_OFDM_G, "OFDMg",
 | |
| @@ -129,6 +131,7 @@ const struct iw_modul_descr	iw_modul_lis
 | |
|    { IW_MODUL_DS, "DS", "802.11 Direct Sequence (2.4 GHz, up to 2 Mb/s)" },
 | |
|    { IW_MODUL_FH, "FH", "802.11 Frequency Hopping (2,4 GHz, up to 2 Mb/s)" },
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    /* Proprietary modulations */
 | |
|    { IW_MODUL_TURBO, "turbo",
 | |
|      "Atheros turbo mode, channel bonding (up to 108 Mb/s)" },
 | |
| @@ -136,6 +139,7 @@ const struct iw_modul_descr	iw_modul_lis
 | |
|      "TI 802.11+ higher rates (2.4 GHz, up to 22 Mb/s)" },
 | |
|    { IW_MODUL_CUSTOM, "custom",
 | |
|      "Driver specific modulation (check driver documentation)" },
 | |
| +#endif
 | |
|  };
 | |
|  
 | |
|  /* Disable runtime version warning in iw_get_range_info() */
 | |
| @@ -440,6 +444,7 @@ iw_print_version_info(const char *	tooln
 | |
|        return -1;
 | |
|      }
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    /* Information about the tools themselves */
 | |
|    if(toolname != NULL)
 | |
|      printf("%-8.16s  Wireless-Tools version %d\n", toolname, WT_VERSION);
 | |
| @@ -452,6 +457,7 @@ iw_print_version_info(const char *	tooln
 | |
|    if(we_kernel_version > 15)
 | |
|      printf("Kernel    Currently compiled with Wireless Extension v%d.\n\n",
 | |
|  	   we_kernel_version);
 | |
| +#endif
 | |
|  
 | |
|    /* Version for each device */
 | |
|    iw_enum_devices(skfd, &print_iface_version_info, NULL, 0);
 | |
| @@ -501,6 +507,7 @@ iw_get_range_info(int		skfd,
 | |
|        /* Copy stuff at the right place, ignore extra */
 | |
|        memcpy((char *) range, buffer, sizeof(iwrange));
 | |
|      }
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    else
 | |
|      {
 | |
|        /* Zero unknown fields */
 | |
| @@ -574,6 +581,7 @@ iw_get_range_info(int		skfd,
 | |
|         * If the driver source has not been updated to the latest, it doesn't
 | |
|         * matter because the new fields are set to zero */
 | |
|      }
 | |
| +#endif
 | |
|  
 | |
|    /* Don't complain twice.
 | |
|     * In theory, the test apply to each individual driver, but usually
 | |
| @@ -1542,6 +1550,7 @@ iw_print_key(char *			buffer,
 | |
|      }
 | |
|  }
 | |
|  
 | |
| +#ifndef WE_ESSENTIAL
 | |
|  /*------------------------------------------------------------------*/
 | |
|  /*
 | |
|   * Convert a passphrase into a key
 | |
| @@ -1556,6 +1565,7 @@ iw_pass_key(const char *	input,
 | |
|    fprintf(stderr, "Error: Passphrase not implemented\n");
 | |
|    return(-1);
 | |
|  }
 | |
| +#endif
 | |
|  
 | |
|  /*------------------------------------------------------------------*/
 | |
|  /*
 | |
| @@ -1578,12 +1588,14 @@ iw_in_key(const char *		input,
 | |
|  	keylen = IW_ENCODING_TOKEN_MAX;
 | |
|        memcpy(key, input + 2, keylen);
 | |
|      }
 | |
| +#ifndef WE_ESSENTIAL
 | |
|    else
 | |
|      if(!strncmp(input, "p:", 2))
 | |
|        {
 | |
|  	/* Second case : as a passphrase (PrismII cards) */
 | |
|  	return(iw_pass_key(input + 2, key));		/* skip "p:" */
 | |
|        }
 | |
| +#endif
 | |
|      else
 | |
|        {
 | |
|  	const char *	p;
 | |
| --- a/Makefile
 | |
| +++ b/Makefile
 | |
| @@ -195,9 +195,9 @@ install-iwmulticall:: iwmulticall
 | |
|  	install -m 755 $< $(INSTALL_DIR)/iwconfig
 | |
|  	( cd $(INSTALL_DIR) ; \
 | |
|  	  ln -f -s iwconfig iwlist ; \
 | |
| -	  ln -f -s iwconfig iwspy ; \
 | |
| +	  $(if $(BUILD_WE_ESSENTIAL),,ln -f -s iwconfig iwspy ;) \
 | |
|  	  ln -f -s iwconfig iwpriv ; \
 | |
| -	  ln -f -s iwconfig iwgetid )
 | |
| +	  $(if $(BUILD_WE_ESSENTIAL),,ln -f -s iwconfig iwgetid ) )
 | |
|  
 | |
|  clean::
 | |
|  	$(RM_CMD) 
 |