blobmsg_parse(policy, __MSG_MAX, tb, blobmsg_data(data), blobmsg_data_len(data));
if (tb[MSG_ASSOC] && blobmsg_get_u8(tb[MSG_ASSOC]))
- si->connected = 1;
+ si->connected = STA_CONNECTED;
if (si->node->freq < 4000)
si->sta->seen_2ghz = 1;
list_for_each_entry(si, &node->sta_info, node_list) {
if (si->connected)
- si->connected = 2;
+ si->connected = STA_DISCONNECTED;
}
blobmsg_for_each_attr(cur, cl, rem) {
h->update_sta(node, si);
}
usteer_local_node_assoc_update(si, cur);
- if (si->connected == 1)
+ if (si->connected == STA_CONNECTED)
n_assoc++;
}
node->n_assoc = n_assoc;
list_for_each_entry(si, &node->sta_info, node_list) {
- if (si->connected != 2)
+ if (si->connected != STA_DISCONNECTED)
continue;
- si->connected = 0;
+ si->connected = STA_NOT_CONNECTED;
usteer_sta_info_update_timeout(si, config.local_sta_timeout);
MSG(VERBOSE, "station "MAC_ADDR_FMT" disconnected from node %s\n",
MAC_ADDR_DATA(si->sta->addr), usteer_node_name(node));
min_signal = snr_to_signal(&ln->node, min_signal);
list_for_each_entry(si, &ln->node.sta_info, node_list) {
- if (!si->connected || si->signal >= min_signal ||
+ if (si->connected != STA_CONNECTED || si->signal >= min_signal ||
current_time - si->roam_kick < config.roam_trigger_interval) {
usteer_roam_set_state(si, ROAM_TRIGGER_IDLE, ev);
continue;
ev.threshold.ref = min_signal;
list_for_each_entry(si, &ln->node.sta_info, node_list) {
- if (!si->connected)
+ if (si->connected != STA_CONNECTED)
continue;
if (si->signal >= min_signal)
list_for_each_entry(si, &ln->node.sta_info, node_list) {
struct sta_info *tmp;
- if (!si->connected)
+ if (si->connected != STA_CONNECTED)
continue;
if (is_more_kickable(kick1, si))
void
usteer_sta_info_update_timeout(struct sta_info *si, int timeout)
{
- if (si->connected == 1)
+ if (si->connected == STA_CONNECTED)
usteer_timeout_cancel(&tq, &si->timeout);
else if (timeout > 0)
usteer_timeout_set(&tq, &si->timeout, timeout);
usteer_sta_info_update(struct sta_info *si, int signal, bool avg)
{
/* ignore probe request signal when connected */
- if (si->connected == 1 && si->signal != NO_SIGNAL && !avg)
+ if (si->connected == STA_CONNECTED && si->signal != NO_SIGNAL && !avg)
signal = NO_SIGNAL;
if (signal != NO_SIGNAL)
blobmsg_add_u32(&b, "reason", config.load_kick_reason_code);
blobmsg_add_u8(&b, "deauth", 1);
ubus_invoke(ubus_ctx, ln->obj_id, "del_client", b.head, NULL, 0, 100);
- si->connected = 0;
+ si->connected = STA_NOT_CONNECTED;
si->roam_kick = current_time;
}
NODE_TYPE_REMOTE,
};
+enum usteer_sta_connection_state {
+ STA_NOT_CONNECTED = 0,
+ STA_CONNECTED = 1,
+ STA_DISCONNECTED = 2,
+};
+
struct sta_info;
struct usteer_local_node;
struct usteer_remote_host;