mirror of
https://github.com/berlin-open-wireless-lab/DAWN.git
synced 2025-03-09 15:40:12 +00:00
insert macs to list
This commit is contained in:
parent
6eee1214a2
commit
1a2aa2c6e2
4 changed files with 77 additions and 2 deletions
2
files/mac_list
Normal file
2
files/mac_list
Normal file
|
@ -0,0 +1,2 @@
|
|||
a4:2b:b0:de:f1:fd
|
||||
f0:79:60:1c:26:f0
|
|
@ -13,9 +13,22 @@
|
|||
#define ETH_ALEN 6
|
||||
#endif
|
||||
|
||||
/* Mac */
|
||||
|
||||
// ---------------- Defines -------------------
|
||||
#define MAC_LIST_LENGTH 100
|
||||
|
||||
// ---------------- Structs ----------------
|
||||
uint8_t mac_list[MAC_LIST_LENGTH][ETH_ALEN];
|
||||
|
||||
// ---------------- Functions ----------
|
||||
void insert_macs_from_file();
|
||||
|
||||
|
||||
/* Metric */
|
||||
|
||||
struct probe_metric_s dawn_metric;
|
||||
|
||||
// ---------------- Structs ----------------
|
||||
struct probe_metric_s {
|
||||
int ht_support;
|
||||
|
|
|
@ -108,7 +108,6 @@ int main(int argc, char **argv) {
|
|||
sigaction(SIGTERM, &newSigAction, NULL); /* catch term signal */
|
||||
sigaction(SIGINT, &newSigAction, NULL); /* catch interrupt signal */
|
||||
|
||||
|
||||
gcrypt_init();
|
||||
gcrypt_set_key_and_iv(shared_key, iv);
|
||||
|
||||
|
|
|
@ -41,9 +41,12 @@ int probe_array_update_rssi(uint8_t bssid_addr[], uint8_t client_addr[], uint32_
|
|||
|
||||
int is_connected(uint8_t bssid_addr[], uint8_t client_addr[]);
|
||||
|
||||
int mac_in_maclist(uint8_t mac[]);
|
||||
|
||||
int probe_entry_last = -1;
|
||||
int client_entry_last = -1;
|
||||
int ap_entry_last = -1;
|
||||
int mac_list_entry_last = -1;
|
||||
|
||||
void remove_probe_array_cb(struct uloop_timeout *t);
|
||||
|
||||
|
@ -134,7 +137,7 @@ int better_ap_available(uint8_t bssid_addr[], uint8_t client_addr[]) {
|
|||
}
|
||||
|
||||
int kick_client(struct client_s client_entry) {
|
||||
return better_ap_available(client_entry.bssid_addr, client_entry.client_addr);
|
||||
return !mac_in_maclist(client_entry.client_addr) && better_ap_available(client_entry.bssid_addr, client_entry.client_addr);
|
||||
}
|
||||
|
||||
void kick_clients(uint8_t bssid[], uint32_t id) {
|
||||
|
@ -600,6 +603,64 @@ void insert_client_to_array(client entry) {
|
|||
pthread_mutex_unlock(&client_array_mutex);
|
||||
}
|
||||
|
||||
void insert_macs_from_file()
|
||||
{
|
||||
FILE * fp;
|
||||
char * line = NULL;
|
||||
size_t len = 0;
|
||||
ssize_t read;
|
||||
|
||||
fp = fopen("/etc/config/dawn", "r");
|
||||
if (fp == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
while ((read = getline(&line, &len, fp)) != -1) {
|
||||
printf("Retrieved line of length %zu :\n", read);
|
||||
printf("%s", line);
|
||||
|
||||
int tmp_int_mac[ETH_ALEN];
|
||||
sscanf(line, MACSTR, STR2MAC(tmp_int_mac));
|
||||
|
||||
for (int i = 0; i < ETH_ALEN; ++i) {
|
||||
mac_list[mac_list_entry_last][i] = (uint8_t) tmp_int_mac[i];
|
||||
}
|
||||
}
|
||||
|
||||
printf("Printing MAC List:\n");
|
||||
for(int i = 0; i <= mac_list_entry_last; i++)
|
||||
{
|
||||
char mac_buf_target[20];
|
||||
sprintf(mac_buf_target, MACSTR, MAC2STR(mac_list[0]));
|
||||
printf("%d: %s\n", i, mac_buf_target);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
if (line)
|
||||
free(line);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
int mac_in_maclist(uint8_t mac[])
|
||||
{
|
||||
for(int i = 0; i <= mac_list_entry_last; i++)
|
||||
{
|
||||
if(mac_is_equal(mac, mac_list[i]))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
node *delete_probe_req(node **ret_remove, node *head, uint8_t bssid_addr[],
|
||||
uint8_t client_addr[]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue