From 60bfb9c5160f5e63656c17e2a0b7fe13267f9b72 Mon Sep 17 00:00:00 2001 From: Anjan Chanda <anjan.chanda@iopsys.eu> Date: Tue, 23 Feb 2021 12:52:11 +0100 Subject: [PATCH] cleanup ap-autoconfig --- src/cmdu_output.c | 9 --------- src/i1905.c | 49 +++++++++++++---------------------------------- 2 files changed, 13 insertions(+), 45 deletions(-) diff --git a/src/cmdu_output.c b/src/cmdu_output.c index a0f54fd8..78150573 100644 --- a/src/cmdu_output.c +++ b/src/cmdu_output.c @@ -762,15 +762,6 @@ int i1905_send_ap_autoconfig_search(struct i1905_private *priv, uint8_t freqband uint16_t mid = 0; - /* - if (!strncmp(iface->ifname, ifs->ifname, 16) && - !memcmp(iface->macaddr, ifs->macaddr, 6)) { - - //continue; //TODO: revisit - } - */ - - frm = cmdu_alloc_simple(CMDU_TYPE_AP_AUTOCONFIGURATION_SEARCH, &mid); if (!frm) { fprintf(stderr, "%s: -ENOMEM\n", __func__); diff --git a/src/i1905.c b/src/i1905.c index 56308c54..0bbc48ab 100644 --- a/src/i1905.c +++ b/src/i1905.c @@ -267,11 +267,6 @@ static struct i1905_interface *i1905_alloc_interface(const char *ifname, } } - /* get bssid */ - ret = wifi_get_bssid(ifname, wifi->bssid); - if (ret) - fprintf(stderr, "error wifi_get_bssid()\n"); - /* get role/mode */ ret = wifi_get_mode(ifname, &mode); if (!ret) { @@ -283,6 +278,15 @@ static struct i1905_interface *i1905_alloc_interface(const char *ifname, wifi->role = IEEE80211_ROLE_UNKNOWN; } + /* get bssid */ + ret = wifi_get_bssid(ifname, wifi->bssid); + if (ret) + fprintf(stderr, "error wifi_get_bssid()\n"); + + if (wifi->role == IEEE80211_ROLE_AP || + (wifi->role == IEEE80211_ROLE_STA && !hwaddr_is_zero(wifi->bssid))) + n->authenticated = true; + /* get ap bandwidth */ ret = wifi_get_bandwidth(ifname, &bw); if (!ret) { @@ -1185,30 +1189,15 @@ int i1905_apconfig_request(void *priv, uint8_t band) return -EINVAL; } + if (!forall_radios) { #if 0 - if (ifname && ifname[0] != '\0') { - iface = i1905_lookup_interface(p, ifname); - if (!iface || (iface && !IS_MEDIA_WIFI(iface->media))) { - fprintf(stderr, "%s: Not a i1905 WiFi interface\n", ifname); + if (i1905_has_registrar(p, freqband) && p->start_apconfig == 1) { + fprintf(stderr, "Self is registrar on band %d\n", band); + p->start_apconfig = 0; return -EINVAL; } - } - - if (iface && !forall_radios) { - if (IS_MEDIA_WIFI_2GHZ(iface->media) && freqband != IEEE80211_FREQUENCY_BAND_2_4_GHZ) - return -EINVAL; - - if (IS_MEDIA_WIFI_5GHZ(iface->media) && freqband != IEEE80211_FREQUENCY_BAND_5_GHZ) - return -EINVAL; - - return i1905_send_ap_autoconfig_search(iface->priv, freqband); - } #endif - if (!forall_radios) { - //if (!i1905_has_registrar(priv, freqband)) - // return -EINVAL; - return i1905_send_ap_autoconfig_search(priv, freqband); } @@ -1216,18 +1205,6 @@ int i1905_apconfig_request(void *priv, uint8_t band) for (i = 0; i < ARRAY_SIZE(bands); i++) ret |= i1905_send_ap_autoconfig_search(priv, freqband); -#if 0 - list_for_each_entry(iface, &p->dm.self.iflist, list) { - if (!IS_MEDIA_WIFI(iface->media)) - continue; - - // FIXME: IS_MEDIA_WIFI_5/2GHZ()... - //if (freqband != IEEE80211_FREQUENCY_BAND_UNKNOWN && freqband != iface->media) - // continue; - ret |= i1905_send_ap_autoconfig_search(iface->priv, freqband); - } -#endif - return ret; } -- GitLab