From 9eecf090a225ac2860bedc686a0c6458a26fad12 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Tue, 11 May 2021 12:45:26 +0200 Subject: [PATCH] map-agent: deprecate bk_ssid and bk_key from wsc ext --- src/core/agent.c | 4 ++++ src/core/agent.h | 4 ++-- src/core/agent_map.c | 10 ++-------- src/core/config.c | 8 ++------ 4 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/core/agent.c b/src/core/agent.c index b8992cf9d..885b6df64 100644 --- a/src/core/agent.c +++ b/src/core/agent.c @@ -101,6 +101,10 @@ static void agent_sighandler(int sig) signal_pending = sig; } +void agent_exec_platform_scripts(char *arg) +{ + runCmd("/lib/wifi/multiap %s", arg); +} const char *wifi_ifname_to_radio(struct agent *a, char *ifname) { diff --git a/src/core/agent.h b/src/core/agent.h index ae08dda63..92310b4b6 100644 --- a/src/core/agent.h +++ b/src/core/agent.h @@ -352,8 +352,6 @@ struct iop_ext { uint8_t bridge[16]; uint8_t proto[8]; uint8_t vid; - uint8_t bk_ssid[33]; - uint8_t bk_key[65]; uint32_t br_ip; }; @@ -515,6 +513,8 @@ struct wsc_data *agent_free_wsc_data(struct wsc_data *wsc); extern int start_agent(void); extern void stop_agent(struct agent *a); +void agent_exec_platform_scripts(char *arg); + extern int wifiagent_steer_sta(struct ubus_context *ctx, char *ifname, unsigned char *sta, int bsscnt, unsigned char *bsss, int optime); diff --git a/src/core/agent_map.c b/src/core/agent_map.c index 4cf0f1a79..ee1247532 100644 --- a/src/core/agent_map.c +++ b/src/core/agent_map.c @@ -1118,10 +1118,6 @@ int wsc_get_iop_ext(uint8_t *msg, uint16_t msglen, struct iop_ext *exts) memcpy(&exts->vid, p, len); else if (subelem == ATTR_BR_IP) memcpy(&exts->br_ip, p, len); - else if (subelem == ATTR_BK_SSID) - memcpy(exts->bk_ssid, p, len); - else if (subelem == ATTR_BK_KEY) - memcpy(exts->bk_key, p, len); p += len; attr_len -= len; @@ -1242,15 +1238,13 @@ int handle_ap_autoconfig_wsc(void *agent, struct cmdu_buff *rx_cmdu) } uci_apply_traffic_sep((struct tlv_traffic_sep_policy *)tv[1][0]->data); - - uci_set_wireless_interface_option("mapagent", "wifi-radio", "device", - radio->name, "configured", "1"); dbg("|%s:%d| radio (%s) was configured! Apply heartbeat for this radio\n", __func__, __LINE__, radio->name); - radio->configured = 1; wifi_reorder_interfaces(&a->cfg); + agent_exec_platform_scripts("write_credentials"); agent_config_reload(&a->cfg); radio->state = ACS_HEARTBEAT; + //uci_apply_wps_credentials(&a->cfg, radio->band); teardown: // TODO: freeing from here risks freeing an updated frame diff --git a/src/core/config.c b/src/core/config.c index 776fc9109..656053bc0 100644 --- a/src/core/config.c +++ b/src/core/config.c @@ -799,8 +799,6 @@ int uci_apply_m2(struct agent_config *cfg, char *interface_name, char *device, dbg(" - PROTO : %s\n", exts->proto); dbg(" - VID : 0x%02x\n", exts->vid); dbg(" - BR_IP : %s\n", ipaddr_str); - dbg(" - BK_SSID : %s\n", exts->bk_ssid); - dbg(" - BK_KEY : %s\n", exts->bk_key); dbg(" - BAND : %s\n", band_str); // if teardown bit is set, return @@ -847,6 +845,8 @@ int uci_apply_m2(struct agent_config *cfg, char *interface_name, char *device, interface_name, "key", network_key); uci_set_wireless_interface_option(UCI_AGENT, UCI_FH_AGENT, "ifname", interface_name, "encryption", auth_type_str); + uci_set_wireless_interface_option(UCI_AGENT, UCI_FH_AGENT, "ifname", + interface_name, "multi_ap", multiap_str); if (multi_ap & 0x01) { char disallow_str[2] = {0}; @@ -886,10 +886,6 @@ int uci_apply_m2(struct agent_config *cfg, char *interface_name, char *device, interface_name, "device", device); uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname", interface_name, "multi_ap", multiap_str); - uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname", - interface_name, "multi_ap_backhaul_key", exts->bk_key); - uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname", - interface_name, "multi_ap_backhaul_ssid", exts->bk_ssid); uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname", interface_name, "ieee80211k", "1"); uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname", -- GitLab