summaryrefslogtreecommitdiff
path: root/package/iw/patches/110-ibss_ht.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/iw/patches/110-ibss_ht.patch')
-rw-r--r--package/iw/patches/110-ibss_ht.patch113
1 files changed, 0 insertions, 113 deletions
diff --git a/package/iw/patches/110-ibss_ht.patch b/package/iw/patches/110-ibss_ht.patch
deleted file mode 100644
index 1b5dbd3..0000000
--- a/package/iw/patches/110-ibss_ht.patch
+++ /dev/null
@@ -1,113 +0,0 @@
---- a/ibss.c
-+++ b/ibss.c
-@@ -27,6 +27,7 @@ static int join_ibss(struct nl80211_stat
- char *value = NULL, *sptr = NULL;
- float rate;
- int bintval;
-+ unsigned int htval;
-
- if (argc < 2)
- return 1;
-@@ -44,6 +45,12 @@ static int join_ibss(struct nl80211_stat
- argv++;
- argc--;
-
-+ if (argc && parse_channel_type(argv[0], &htval)) {
-+ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_CHANNEL_TYPE, htval);
-+ argv++;
-+ argc--;
-+ }
-+
- if (argc && strcmp(argv[0], "fixed-freq") == 0) {
- NLA_PUT_FLAG(msg, NL80211_ATTR_FREQ_FIXED);
- argv++;
-@@ -134,7 +141,7 @@ COMMAND(ibss, leave, NULL,
- NL80211_CMD_LEAVE_IBSS, 0, CIB_NETDEV, leave_ibss,
- "Leave the current IBSS cell.");
- COMMAND(ibss, join,
-- "<SSID> <freq in MHz> [fixed-freq] [<fixed bssid>] [beacon-interval <TU>]"
-+ "<SSID> <freq in MHz> [HT20|HT40+|HT40-] [fixed-freq] [<fixed bssid>] [beacon-interval <TU>]"
- " [basic-rates <rate in Mbps,rate2,...>] [mcast-rate <rate in Mbps>] "
- "[key d:0:abcde]",
- NL80211_CMD_JOIN_IBSS, 0, CIB_NETDEV, join_ibss,
---- a/iw.h
-+++ b/iw.h
-@@ -133,6 +133,7 @@ int parse_hex_mask(char *hexmask, unsign
- unsigned char *parse_hex(char *hex, size_t *outlen);
-
- int parse_keys(struct nl_msg *msg, char **argv, int argc);
-+int parse_channel_type(const char *str, unsigned int *htval);
-
- void print_ht_mcs(const __u8 *mcs);
- void print_ampdu_length(__u8 exponent);
---- a/phy.c
-+++ b/phy.c
-@@ -33,30 +33,14 @@ static int handle_freqchan(struct nl_msg
- int argc, char **argv)
- {
- char *end;
-- static const struct {
-- const char *name;
-- unsigned int val;
-- } htmap[] = {
-- { .name = "HT20", .val = NL80211_CHAN_HT20, },
-- { .name = "HT40+", .val = NL80211_CHAN_HT40PLUS, },
-- { .name = "HT40-", .val = NL80211_CHAN_HT40MINUS, },
-- };
- unsigned int htval = NL80211_CHAN_NO_HT;
- unsigned int freq;
-- int i;
-
- if (!argc || argc > 2)
- return 1;
-
-- if (argc == 2) {
-- for (i = 0; i < ARRAY_SIZE(htmap); i++) {
-- if (strcasecmp(htmap[i].name, argv[1]) == 0) {
-- htval = htmap[i].val;
-- break;
-- }
-- }
-- if (htval == NL80211_CHAN_NO_HT)
-- return 1;
-+ if (argc == 2 && !parse_channel_type(argv[1], &htval)) {
-+ return 1;
- }
-
- if (!*argv[0])
---- a/util.c
-+++ b/util.c
-@@ -382,6 +382,33 @@ int parse_keys(struct nl_msg *msg, char
- return 2;
- }
-
-+/*
-+ * Convert a string "HT20", "HT40+" or "HT40-" into nl80211
-+ * value. Conversion is case insensitive. Returns 1 on success, 0 on error.
-+ */
-+
-+int parse_channel_type(const char *str, unsigned int *htval)
-+{
-+ static const struct {
-+ const char *name;
-+ unsigned int val;
-+ } htmap[] = {
-+ { .name = "HT20", .val = NL80211_CHAN_HT20, },
-+ { .name = "HT40+", .val = NL80211_CHAN_HT40PLUS, },
-+ { .name = "HT40-", .val = NL80211_CHAN_HT40MINUS, },
-+ };
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(htmap); i++) {
-+ if (strcasecmp(htmap[i].name, str) == 0) {
-+ *htval = htmap[i].val;
-+ return 1;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
- static void print_mcs_index(const __u8 *mcs)
- {
- unsigned int mcs_bit, prev_bit = -2, prev_cont = 0;