From: David Bauer Date: Mon, 27 Sep 2021 17:35:55 +0000 (+0200) Subject: sta: add sta_connection_state enum X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=d3ff0d59dac2ae6fc49036ed4199480b3562f477;p=project%2Fusteer.git sta: add sta_connection_state enum Make the connection state of a sta-info more readable by introducing an enum for the STA connection state. Also switch come comparison cases to use the explicit enum values to make the code more readable. Signed-off-by: David Bauer --- diff --git a/local_node.c b/local_node.c index 8064bd7..50e06a7 100644 --- a/local_node.c +++ b/local_node.c @@ -153,7 +153,7 @@ usteer_local_node_assoc_update(struct sta_info *si, struct blob_attr *data) 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; @@ -174,7 +174,7 @@ usteer_local_node_set_assoc(struct usteer_local_node *ln, struct blob_attr *cl) 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) { @@ -193,17 +193,17 @@ usteer_local_node_set_assoc(struct usteer_local_node *ln, struct blob_attr *cl) 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)); diff --git a/policy.c b/policy.c index c1a992f..1b4fa57 100644 --- a/policy.c +++ b/policy.c @@ -334,7 +334,7 @@ usteer_local_node_roam_check(struct usteer_local_node *ln, struct uevent *ev) 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; @@ -365,7 +365,7 @@ usteer_local_node_snr_kick(struct usteer_local_node *ln) 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) @@ -434,7 +434,7 @@ usteer_local_node_kick(struct usteer_local_node *ln) 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)) diff --git a/sta.c b/sta.c index 869019d..959cff5 100644 --- a/sta.c +++ b/sta.c @@ -111,7 +111,7 @@ usteer_sta_info_get(struct sta *sta, struct usteer_node *node, bool *create) 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); @@ -145,7 +145,7 @@ void 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) diff --git a/ubus.c b/ubus.c index 5e285d8..c2e32fd 100644 --- a/ubus.c +++ b/ubus.c @@ -540,7 +540,7 @@ void usteer_ubus_kick_client(struct sta_info *si) 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; } diff --git a/usteer.h b/usteer.h index 20a4432..87ee1f3 100644 --- a/usteer.h +++ b/usteer.h @@ -54,6 +54,12 @@ enum usteer_node_type { 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;