add option for driver recognition

This commit is contained in:
PolynomialDivision 2018-01-14 12:39:57 +01:00
parent e083ae8e9d
commit 3d38b28500
5 changed files with 20 additions and 5 deletions

View file

@ -44,3 +44,4 @@ config metric
option eval_assoc_req '1' # just deny assocs...
option deny_auth_reason '1' # unspecified
option deny_assoc_reason '17' # assoc rejected can't handle new station
option use_driver_recog '1'

View file

@ -58,6 +58,7 @@ struct probe_metric_s {
int eval_assoc_req;
int deny_auth_reason;
int deny_assoc_reason;
int use_driver_recog;
};
struct time_config_s {

View file

@ -866,7 +866,10 @@ void uloop_add_data_cbs() {
uloop_timeout_add(&probe_timeout);
uloop_timeout_add(&client_timeout);
uloop_timeout_add(&ap_timeout);
if(dawn_metric.use_driver_recog){
uloop_timeout_add(&denied_req_timeout);
}
}
void remove_probe_array_cb(struct uloop_timeout *t) {

View file

@ -72,6 +72,7 @@ struct probe_metric_s uci_get_dawn_metric() {
ret.deny_auth_reason = uci_lookup_option_int(uci_ctx, s, "deny_auth_reason");
ret.deny_assoc_reason = uci_lookup_option_int(uci_ctx, s, "deny_assoc_reason");
ret.max_station_diff = uci_lookup_option_int(uci_ctx, s, "max_station_diff");
ret.use_driver_recog = uci_lookup_option_int(uci_ctx, s, "use_driver_recog");
return ret;
}
}

View file

@ -422,13 +422,18 @@ static int handle_auth_req(struct blob_attr *msg) {
// block if entry was not already found in probe database
if (!(mac_is_equal(tmp.bssid_addr, auth_req.bssid_addr) && mac_is_equal(tmp.client_addr, auth_req.client_addr))) {
printf("DENY AUTH!\n");
if(dawn_metric.use_driver_recog){
insert_to_denied_req_array(auth_req, 1);
}
return dawn_metric.deny_auth_reason;
}
if (!decide_function(&tmp, REQ_TYPE_AUTH)) {
printf("DENY AUTH\n");
if(dawn_metric.use_driver_recog) {
insert_to_denied_req_array(auth_req, 1);
}
return dawn_metric.deny_auth_reason;
}
@ -459,13 +464,17 @@ static int handle_assoc_req(struct blob_attr *msg) {
// block if entry was not already found in probe database
if (!(mac_is_equal(tmp.bssid_addr, auth_req.bssid_addr) && mac_is_equal(tmp.client_addr, auth_req.client_addr))) {
printf("DENY ASSOC!\n");
if(dawn_metric.use_driver_recog) {
insert_to_denied_req_array(auth_req, 1);
}
return dawn_metric.deny_assoc_reason;
}
if (!decide_function(&tmp, REQ_TYPE_ASSOC)) {
printf("DENY ASSOC\n");
if(dawn_metric.use_driver_recog) {
insert_to_denied_req_array(auth_req, 1);
}
return dawn_metric.deny_assoc_reason;
}