--- 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)