| 1 | --- a/iwlist.c |
| 2 | +++ b/iwlist.c |
| 3 | @@ -58,7 +58,6 @@ typedef struct iw_auth_descr |
| 4 | * Maybe this should go in iwlib.c ? |
| 5 | */ |
| 6 | |
| 7 | -#ifndef WE_ESSENTIAL |
| 8 | #define IW_ARRAY_LEN(x) (sizeof(x)/sizeof((x)[0])) |
| 9 | |
| 10 | //static const struct iwmask_name iw_enc_mode_name[] = { |
| 11 | @@ -161,11 +160,8 @@ static const char * iw_ie_key_mgmt_name[ |
| 12 | }; |
| 13 | #define IW_IE_KEY_MGMT_NUM IW_ARRAY_LEN(iw_ie_key_mgmt_name) |
| 14 | |
| 15 | -#endif /* WE_ESSENTIAL */ |
| 16 | - |
| 17 | /************************* WPA SUBROUTINES *************************/ |
| 18 | |
| 19 | -#ifndef WE_ESSENTIAL |
| 20 | /*------------------------------------------------------------------*/ |
| 21 | /* |
| 22 | * Print all names corresponding to a mask. |
| 23 | @@ -431,7 +427,6 @@ iw_print_gen_ie(unsigned char * buffer, |
| 24 | offset += buffer[offset+1] + 2; |
| 25 | } |
| 26 | } |
| 27 | -#endif /* WE_ESSENTIAL */ |
| 28 | |
| 29 | /***************************** SCANNING *****************************/ |
| 30 | /* |
| 31 | @@ -585,12 +580,10 @@ print_scanning_token(struct stream_descr |
| 32 | &event->u.qual, iw_range, has_range); |
| 33 | printf(" %s\n", buffer); |
| 34 | break; |
| 35 | -#ifndef WE_ESSENTIAL |
| 36 | case IWEVGENIE: |
| 37 | /* Informations Elements are complex, let's do only some of them */ |
| 38 | iw_print_gen_ie(event->u.data.pointer, event->u.data.length); |
| 39 | break; |
| 40 | -#endif /* WE_ESSENTIAL */ |
| 41 | case IWEVCUSTOM: |
| 42 | { |
| 43 | char custom[IW_CUSTOM_MAX+1]; |
| 44 | @@ -1302,7 +1295,6 @@ print_pm_info(int skfd, |
| 45 | return(0); |
| 46 | } |
| 47 | |
| 48 | -#ifndef WE_ESSENTIAL |
| 49 | /************************** TRANSMIT POWER **************************/ |
| 50 | |
| 51 | /*------------------------------------------------------------------*/ |
| 52 | @@ -1405,6 +1397,7 @@ print_txpower_info(int skfd, |
| 53 | return(0); |
| 54 | } |
| 55 | |
| 56 | +#ifndef WE_ESSENTIAL |
| 57 | /*********************** RETRY LIMIT/LIFETIME ***********************/ |
| 58 | |
| 59 | /*------------------------------------------------------------------*/ |
| 60 | @@ -2060,8 +2053,8 @@ static const struct iwlist_entry iwlist_ |
| 61 | { "encryption", print_keys_info, 0, NULL }, |
| 62 | { "keys", print_keys_info, 0, NULL }, |
| 63 | { "power", print_pm_info, 0, NULL }, |
| 64 | -#ifndef WE_ESSENTIAL |
| 65 | { "txpower", print_txpower_info, 0, NULL }, |
| 66 | +#ifndef WE_ESSENTIAL |
| 67 | { "retry", print_retry_info, 0, NULL }, |
| 68 | { "ap", print_ap_info, 0, NULL }, |
| 69 | { "accesspoints", print_ap_info, 0, NULL }, |
| 70 | --- a/iwconfig.c |
| 71 | +++ b/iwconfig.c |
| 72 | @@ -106,16 +106,6 @@ get_info(int skfd, |
| 73 | if(wrq.u.data.length > 1) |
| 74 | info->has_nickname = 1; |
| 75 | |
| 76 | - if((info->has_range) && (info->range.we_version_compiled > 9)) |
| 77 | - { |
| 78 | - /* Get Transmit Power */ |
| 79 | - if(iw_get_ext(skfd, ifname, SIOCGIWTXPOW, &wrq) >= 0) |
| 80 | - { |
| 81 | - info->has_txpower = 1; |
| 82 | - memcpy(&(info->txpower), &(wrq.u.txpower), sizeof(iwparam)); |
| 83 | - } |
| 84 | - } |
| 85 | - |
| 86 | /* Get sensitivity */ |
| 87 | if(iw_get_ext(skfd, ifname, SIOCGIWSENS, &wrq) >= 0) |
| 88 | { |
| 89 | @@ -132,6 +122,17 @@ get_info(int skfd, |
| 90 | memcpy(&(info->retry), &(wrq.u.retry), sizeof(iwparam)); |
| 91 | } |
| 92 | } |
| 93 | +#endif /* WE_ESSENTIAL */ |
| 94 | + |
| 95 | + if((info->has_range) && (info->range.we_version_compiled > 9)) |
| 96 | + { |
| 97 | + /* Get Transmit Power */ |
| 98 | + if(iw_get_ext(skfd, ifname, SIOCGIWTXPOW, &wrq) >= 0) |
| 99 | + { |
| 100 | + info->has_txpower = 1; |
| 101 | + memcpy(&(info->txpower), &(wrq.u.txpower), sizeof(iwparam)); |
| 102 | + } |
| 103 | + } |
| 104 | |
| 105 | /* Get RTS threshold */ |
| 106 | if(iw_get_ext(skfd, ifname, SIOCGIWRTS, &wrq) >= 0) |
| 107 | @@ -146,7 +147,6 @@ get_info(int skfd, |
| 108 | info->has_frag = 1; |
| 109 | memcpy(&(info->frag), &(wrq.u.frag), sizeof(iwparam)); |
| 110 | } |
| 111 | -#endif /* WE_ESSENTIAL */ |
| 112 | |
| 113 | return(0); |
| 114 | } |
| 115 | @@ -269,7 +269,6 @@ display_info(struct wireless_info * info |
| 116 | printf("Bit Rate%c%s ", (info->bitrate.fixed ? '=' : ':'), buffer); |
| 117 | } |
| 118 | |
| 119 | -#ifndef WE_ESSENTIAL |
| 120 | /* Display the Transmit Power */ |
| 121 | if(info->has_txpower) |
| 122 | { |
| 123 | @@ -286,6 +285,7 @@ display_info(struct wireless_info * info |
| 124 | printf("Tx-Power%c%s ", (info->txpower.fixed ? '=' : ':'), buffer); |
| 125 | } |
| 126 | |
| 127 | +#ifndef WE_ESSENTIAL |
| 128 | /* Display sensitivity */ |
| 129 | if(info->has_sens) |
| 130 | { |
| 131 | @@ -340,6 +340,7 @@ display_info(struct wireless_info * info |
| 132 | printf(" "); |
| 133 | tokens += 5; /* Between 3 and 5, depend on flags */ |
| 134 | } |
| 135 | +#endif /* WE_ESSENTIAL */ |
| 136 | |
| 137 | /* Display the RTS threshold */ |
| 138 | if(info->has_rts) |
| 139 | @@ -383,7 +384,6 @@ display_info(struct wireless_info * info |
| 140 | /* Formating */ |
| 141 | if(tokens > 0) |
| 142 | printf("\n "); |
| 143 | -#endif /* WE_ESSENTIAL */ |
| 144 | |
| 145 | /* Display encryption information */ |
| 146 | /* Note : we display only the "current" key, use iwlist to list all keys */ |
| 147 | @@ -1196,6 +1196,7 @@ set_nwid_info(int skfd, |
| 148 | /* 1 arg */ |
| 149 | return(1); |
| 150 | } |
| 151 | +#endif /* WE_ESSENTIAL */ |
| 152 | |
| 153 | /*------------------------------------------------------------------*/ |
| 154 | /* |
| 155 | @@ -1362,6 +1363,7 @@ set_txpower_info(int skfd, |
| 156 | return(i); |
| 157 | } |
| 158 | |
| 159 | +#ifndef WE_ESSENTIAL |
| 160 | /*------------------------------------------------------------------*/ |
| 161 | /* |
| 162 | * Set Sensitivity |
| 163 | @@ -1459,6 +1461,7 @@ set_retry_info(int skfd, |
| 164 | /* Var args */ |
| 165 | return(i); |
| 166 | } |
| 167 | +#endif /* WE_ESSENTIAL */ |
| 168 | |
| 169 | /*------------------------------------------------------------------*/ |
| 170 | /* |
| 171 | @@ -1565,6 +1568,7 @@ set_frag_info(int skfd, |
| 172 | return(1); |
| 173 | } |
| 174 | |
| 175 | +#ifndef WE_ESSENTIAL |
| 176 | /*------------------------------------------------------------------*/ |
| 177 | /* |
| 178 | * Set Modulation |
| 179 | @@ -1719,21 +1723,21 @@ static const struct iwconfig_entry iwcon |
| 180 | "Set Nickname", "NNN" }, |
| 181 | { "nwid", set_nwid_info, 1, SIOCSIWNWID, |
| 182 | "Set NWID", "{NN|on|off}" }, |
| 183 | - { "ap", set_apaddr_info, 1, SIOCSIWAP, |
| 184 | - "Set AP Address", "{N|off|auto}" }, |
| 185 | - { "txpower", set_txpower_info, 1, SIOCSIWTXPOW, |
| 186 | - "Set Tx Power", "{NmW|NdBm|off|auto}" }, |
| 187 | { "sens", set_sens_info, 1, SIOCSIWSENS, |
| 188 | "Set Sensitivity", "N" }, |
| 189 | + { "modulation", set_modulation_info, 1, SIOCGIWMODUL, |
| 190 | + "Set Modulation", "{11g|11a|CCK|OFDMg|...}" }, |
| 191 | { "retry", set_retry_info, 1, SIOCSIWRETRY, |
| 192 | "Set Retry Limit", "{limit N|lifetime N}" }, |
| 193 | +#endif /* WE_ESSENTIAL */ |
| 194 | + { "ap", set_apaddr_info, 1, SIOCSIWAP, |
| 195 | + "Set AP Address", "{N|off|auto}" }, |
| 196 | + { "txpower", set_txpower_info, 1, SIOCSIWTXPOW, |
| 197 | + "Set Tx Power", "{NmW|NdBm|off|auto}" }, |
| 198 | { "rts", set_rts_info, 1, SIOCSIWRTS, |
| 199 | "Set RTS Threshold", "{N|auto|fixed|off}" }, |
| 200 | { "frag", set_frag_info, 1, SIOCSIWFRAG, |
| 201 | "Set Fragmentation Threshold", "{N|auto|fixed|off}" }, |
| 202 | - { "modulation", set_modulation_info, 1, SIOCGIWMODUL, |
| 203 | - "Set Modulation", "{11g|11a|CCK|OFDMg|...}" }, |
| 204 | -#endif /* WE_ESSENTIAL */ |
| 205 | { "commit", set_commit_info, 0, SIOCSIWCOMMIT, |
| 206 | "Commit changes", "" }, |
| 207 | { NULL, NULL, 0, 0, NULL, NULL }, |
| 208 | --- a/iwmulticall.c |
| 209 | +++ b/iwmulticall.c |
| 210 | @@ -81,7 +81,7 @@ extern int |
| 211 | #define main(args...) main_iwspy(args) |
| 212 | #include "iwspy.c" |
| 213 | #undef main |
| 214 | -#endif /* WE_ESSENTIAL */ |
| 215 | +#endif |
| 216 | |
| 217 | /* Get iwpriv in there. Mandatory for HostAP and some other drivers. */ |
| 218 | #define main(args...) main_iwpriv(args) |
| 219 | @@ -90,12 +90,14 @@ extern int |
| 220 | #undef iw_usage |
| 221 | #undef main |
| 222 | |
| 223 | +#ifndef WE_ESSENTIAL |
| 224 | /* Do we really need iwgetid ? Well, it's not like it's a big one */ |
| 225 | #define main(args...) main_iwgetid(args) |
| 226 | #define iw_usage(args...) iwgetid_usage(args) |
| 227 | #include "iwgetid.c" |
| 228 | #undef iw_usage |
| 229 | #undef main |
| 230 | +#endif |
| 231 | |
| 232 | /* iwevent is useless for most people, don't grab it ? */ |
| 233 | |
| 234 | @@ -131,11 +133,13 @@ main(int argc, |
| 235 | #ifndef WE_ESSENTIAL |
| 236 | if(!strcmp(call_name, "iwspy")) |
| 237 | return(main_iwspy(argc, argv)); |
| 238 | -#endif /* WE_ESSENTIAL */ |
| 239 | +#endif |
| 240 | if(!strcmp(call_name, "iwpriv")) |
| 241 | return(main_iwpriv(argc, argv)); |
| 242 | +#ifndef WE_ESSENTIAL |
| 243 | if(!strcmp(call_name, "iwgetid")) |
| 244 | return(main_iwgetid(argc, argv)); |
| 245 | +#endif |
| 246 | |
| 247 | /* Uh oh... Not supposed to come here. */ |
| 248 | printf("iwmulticall : you are not supposed to call me this way...\n"); |
| 249 | --- a/iwlib.c |
| 250 | +++ b/iwlib.c |
| 251 | @@ -113,6 +113,7 @@ const struct iw_modul_descr iw_modul_lis |
| 252 | { IW_MODUL_11A, "11a", "IEEE 802.11a (5 GHz, up to 54 Mb/s)" }, |
| 253 | { IW_MODUL_11B, "11b", "IEEE 802.11b (2.4 GHz, up to 11 Mb/s)" }, |
| 254 | |
| 255 | +#ifndef WE_ESSENTIAL |
| 256 | /* Proprietary aggregates */ |
| 257 | { IW_MODUL_TURBO | IW_MODUL_11A, "turboa", |
| 258 | "Atheros turbo mode at 5 GHz (up to 108 Mb/s)" }, |
| 259 | @@ -120,6 +121,7 @@ const struct iw_modul_descr iw_modul_lis |
| 260 | "Atheros turbo mode at 2.4 GHz (up to 108 Mb/s)" }, |
| 261 | { IW_MODUL_PBCC | IW_MODUL_11B, "11+", |
| 262 | "TI 802.11+ (2.4 GHz, up to 22 Mb/s)" }, |
| 263 | +#endif |
| 264 | |
| 265 | /* Individual modulations */ |
| 266 | { IW_MODUL_OFDM_G, "OFDMg", |
| 267 | @@ -129,6 +131,7 @@ const struct iw_modul_descr iw_modul_lis |
| 268 | { IW_MODUL_DS, "DS", "802.11 Direct Sequence (2.4 GHz, up to 2 Mb/s)" }, |
| 269 | { IW_MODUL_FH, "FH", "802.11 Frequency Hopping (2,4 GHz, up to 2 Mb/s)" }, |
| 270 | |
| 271 | +#ifndef WE_ESSENTIAL |
| 272 | /* Proprietary modulations */ |
| 273 | { IW_MODUL_TURBO, "turbo", |
| 274 | "Atheros turbo mode, channel bonding (up to 108 Mb/s)" }, |
| 275 | @@ -136,6 +139,7 @@ const struct iw_modul_descr iw_modul_lis |
| 276 | "TI 802.11+ higher rates (2.4 GHz, up to 22 Mb/s)" }, |
| 277 | { IW_MODUL_CUSTOM, "custom", |
| 278 | "Driver specific modulation (check driver documentation)" }, |
| 279 | +#endif |
| 280 | }; |
| 281 | |
| 282 | /* Disable runtime version warning in iw_get_range_info() */ |
| 283 | @@ -440,6 +444,7 @@ iw_print_version_info(const char * tooln |
| 284 | return -1; |
| 285 | } |
| 286 | |
| 287 | +#ifndef WE_ESSENTIAL |
| 288 | /* Information about the tools themselves */ |
| 289 | if(toolname != NULL) |
| 290 | printf("%-8.16s Wireless-Tools version %d\n", toolname, WT_VERSION); |
| 291 | @@ -452,6 +457,7 @@ iw_print_version_info(const char * tooln |
| 292 | if(we_kernel_version > 15) |
| 293 | printf("Kernel Currently compiled with Wireless Extension v%d.\n\n", |
| 294 | we_kernel_version); |
| 295 | +#endif |
| 296 | |
| 297 | /* Version for each device */ |
| 298 | iw_enum_devices(skfd, &print_iface_version_info, NULL, 0); |
| 299 | @@ -501,6 +507,7 @@ iw_get_range_info(int skfd, |
| 300 | /* Copy stuff at the right place, ignore extra */ |
| 301 | memcpy((char *) range, buffer, sizeof(iwrange)); |
| 302 | } |
| 303 | +#ifndef WE_ESSENTIAL |
| 304 | else |
| 305 | { |
| 306 | /* Zero unknown fields */ |
| 307 | @@ -574,6 +581,7 @@ iw_get_range_info(int skfd, |
| 308 | * If the driver source has not been updated to the latest, it doesn't |
| 309 | * matter because the new fields are set to zero */ |
| 310 | } |
| 311 | +#endif |
| 312 | |
| 313 | /* Don't complain twice. |
| 314 | * In theory, the test apply to each individual driver, but usually |
| 315 | @@ -1542,6 +1550,7 @@ iw_print_key(char * buffer, |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | +#ifndef WE_ESSENTIAL |
| 320 | /*------------------------------------------------------------------*/ |
| 321 | /* |
| 322 | * Convert a passphrase into a key |
| 323 | @@ -1556,6 +1565,7 @@ iw_pass_key(const char * input, |
| 324 | fprintf(stderr, "Error: Passphrase not implemented\n"); |
| 325 | return(-1); |
| 326 | } |
| 327 | +#endif |
| 328 | |
| 329 | /*------------------------------------------------------------------*/ |
| 330 | /* |
| 331 | @@ -1578,12 +1588,14 @@ iw_in_key(const char * input, |
| 332 | keylen = IW_ENCODING_TOKEN_MAX; |
| 333 | memcpy(key, input + 2, keylen); |
| 334 | } |
| 335 | +#ifndef WE_ESSENTIAL |
| 336 | else |
| 337 | if(!strncmp(input, "p:", 2)) |
| 338 | { |
| 339 | /* Second case : as a passphrase (PrismII cards) */ |
| 340 | return(iw_pass_key(input + 2, key)); /* skip "p:" */ |
| 341 | } |
| 342 | +#endif |
| 343 | else |
| 344 | { |
| 345 | const char * p; |
| 346 | --- a/Makefile |
| 347 | +++ b/Makefile |
| 348 | @@ -195,9 +195,9 @@ install-iwmulticall:: iwmulticall |
| 349 | install -m 755 $< $(INSTALL_DIR)/iwconfig |
| 350 | ( cd $(INSTALL_DIR) ; \ |
| 351 | ln -f -s iwconfig iwlist ; \ |
| 352 | - ln -f -s iwconfig iwspy ; \ |
| 353 | + $(if $(BUILD_WE_ESSENTIAL),,ln -f -s iwconfig iwspy ;) \ |
| 354 | ln -f -s iwconfig iwpriv ; \ |
| 355 | - ln -f -s iwconfig iwgetid ) |
| 356 | + $(if $(BUILD_WE_ESSENTIAL),,ln -f -s iwconfig iwgetid ) ) |
| 357 | |
| 358 | clean:: |
| 359 | $(RM_CMD) |
| 360 | |