From fe848b8231f02e5e72c9c8bc09e583baec454a0f Mon Sep 17 00:00:00 2001 From: PolynomialDivision Date: Sun, 10 Dec 2017 23:28:38 +0100 Subject: [PATCH] schedule a client update --- src/include/ubus.h | 2 ++ src/storage/datastorage.c | 2 ++ src/utils/ubus.c | 12 ++++++++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/include/ubus.h b/src/include/ubus.h index ce91d3a..2f1d190 100644 --- a/src/include/ubus.h +++ b/src/include/ubus.h @@ -32,4 +32,6 @@ int ubus_send_probe_via_network(struct probe_entry_s probe_entry); void update_hostapd_sockets(struct uloop_timeout *t); +void add_client_update_timer(time_t time); + #endif diff --git a/src/storage/datastorage.c b/src/storage/datastorage.c index 152ed2c..5e2ccfe 100644 --- a/src/storage/datastorage.c +++ b/src/storage/datastorage.c @@ -175,6 +175,8 @@ void kick_clients(uint8_t bssid[], uint32_t id) { print_client_entry(client_array[j]); del_client_interface(id, client_array[j].client_addr, 5, 1, 60000); client_array_delete(client_array[j]); + add_client_update_timer(timeout_config.update_client * 1000 / 4); + break; // no entry in probe array for own bssid } else if (kick_client(client_array[j]) == -1) { diff --git a/src/utils/ubus.c b/src/utils/ubus.c index f5924f8..2d09677 100644 --- a/src/utils/ubus.c +++ b/src/utils/ubus.c @@ -24,13 +24,12 @@ static struct blob_buf b; void update_clients(struct uloop_timeout *t); -struct uloop_timeout hostapd_timer = { - .cb = update_hostapd_sockets -}; - struct uloop_timeout client_timer = { .cb = update_clients }; +struct uloop_timeout hostapd_timer = { + .cb = update_hostapd_sockets +}; #define MAX_HOSTAPD_SOCKETS 10 uint32_t hostapd_sock_arr[MAX_HOSTAPD_SOCKETS]; @@ -140,6 +139,11 @@ int hostapd_array_check_id(uint32_t id); void hostapd_array_insert(uint32_t id); void hostapd_array_delete(uint32_t id); +void add_client_update_timer(time_t time) +{ + uloop_timeout_set(&client_timer, time); +} + int hostapd_array_check_id(uint32_t id) { for(int i = 0; i <= hostapd_sock_last; i++)