hostapd: mpskd: use mpsk from wireless config

In MPSK AAA need to use mpsk info to block scans
becasue keys are not configured.

Signed-off-by: Marek Kwaczynski <marek@shasta.cloud>
This commit is contained in:
Marek Kwaczynski
2024-11-13 13:03:15 +01:00
committed by John Crispin
parent 7847e1778e
commit 18bb47be4d
2 changed files with 42 additions and 4 deletions

View File

@@ -26,7 +26,8 @@ function event_cb_6g(req) {
return 0;
let ssid = iface.ssid;
if (!ssid || !length(ssids[ssid].keys))
if (!ssid || !ssids[ssid].mpsk)
return 0;
let ssid_cache = cache[ssid];
@@ -53,7 +54,7 @@ function event_cb(req) {
return 0;
let ssid = iface.ssid;
if (!ssid || !length(ssids[ssid].keys))
if (!ssid || !ssids[ssid].mpsk)
return 0;
let ssid_cache = cache[ssid];
@@ -143,6 +144,7 @@ function netifd_reload() {
push(ssid.interfaces, iface.ifname);
ssid.bands[band] = iface.ifname;
ssid.mpsk = config.multi_psk;
for (let sta in iface.stations) {
let stacfg = sta.config;
@@ -174,6 +176,20 @@ function iface_ssid(ifname) {
return iface.ssid;
}
function is_ssid_mpsk(ifname) {
let ssid = iface_ssid(ifname);
if (!ssid)
return false;
if (!ssids[ssid])
return false;
if (!ssids[ssid]?.mpsk)
return false;
return ssids[ssid].mpsk;
}
function sta_cache_entry_get(ssid, addr) {
let ssid_cache = cache[ssid] ?? {};
@@ -292,6 +308,9 @@ function sta_auth_cache(ifname, addr, idx, phrase) {
function auth_cb(msg) {
let data = msg.data;
if (!is_ssid_mpsk(data.iface))
return;
printf(`Event ${msg.type}: ${msg.data}\n`);
switch (msg.type) {
case 'sta_auth':

View File

@@ -26,7 +26,8 @@ function event_cb_6g(req) {
return 0;
let ssid = iface.ssid;
if (!ssid || !length(ssids[ssid].keys))
if (!ssid || !ssids[ssid].mpsk)
return 0;
let ssid_cache = cache[ssid];
@@ -53,7 +54,7 @@ function event_cb(req) {
return 0;
let ssid = iface.ssid;
if (!ssid || !length(ssids[ssid].keys))
if (!ssid || !ssids[ssid].mpsk)
return 0;
let ssid_cache = cache[ssid];
@@ -143,6 +144,7 @@ function netifd_reload() {
push(ssid.interfaces, iface.ifname);
ssid.bands[band] = iface.ifname;
ssid.mpsk = config.multi_psk;
for (let sta in iface.stations) {
let stacfg = sta.config;
@@ -174,6 +176,20 @@ function iface_ssid(ifname) {
return iface.ssid;
}
function is_ssid_mpsk(ifname) {
let ssid = iface_ssid(ifname);
if (!ssid)
return false;
if (!ssids[ssid])
return false;
if (!ssids[ssid]?.mpsk)
return false;
return ssids[ssid].mpsk;
}
function sta_cache_entry_get(ssid, addr) {
let ssid_cache = cache[ssid] ?? {};
@@ -292,6 +308,9 @@ function sta_auth_cache(ifname, addr, idx, phrase) {
function auth_cb(msg) {
let data = msg.data;
if (!is_ssid_mpsk(data.iface))
return;
printf(`Event ${msg.type}: ${msg.data}\n`);
switch (msg.type) {
case 'sta_auth':