summaryrefslogtreecommitdiff
path: root/package/network/services/authsae/files/lib/wifi/authsae.sh
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/authsae/files/lib/wifi/authsae.sh')
-rw-r--r--package/network/services/authsae/files/lib/wifi/authsae.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/package/network/services/authsae/files/lib/wifi/authsae.sh b/package/network/services/authsae/files/lib/wifi/authsae.sh
new file mode 100644
index 0000000..daa43eb
--- /dev/null
+++ b/package/network/services/authsae/files/lib/wifi/authsae.sh
@@ -0,0 +1,53 @@
+authsae_start_interface() {
+ local device="$1" # to use the correct channel
+ local vif="$2"
+ local band
+
+ cfgfile="/var/run/authsae-$vif.cfg"
+ config_get channel "$device" channel
+ config_get hwmode "$device" hwmode
+ config_get htmode "$device" htmode
+ config_get ifname "$vif" ifname
+ config_get key "$vif" key
+ config_get mesh_id "$vif" mesh_id
+ config_get mcast_rate "$vif" mcast_rate "12"
+
+ case "$htmode" in
+ HT20|HT40+|HT40-) htmode="$htmode";;
+ NOHT|none|*) htmode="none";;
+ esac
+
+ case "$hwmode" in
+ *g*) band=11g;;
+ *a*) band=11a;;
+ esac
+
+ cat > "$cfgfile" <<EOF
+authsae:
+{
+ sae:
+ {
+ debug = 0;
+ password = "$key";
+ group = [19, 26, 21, 25, 20];
+ blacklist = 5;
+ thresh = 5;
+ lifetime = 3600;
+ };
+ meshd:
+ {
+ meshid = "$mesh_id";
+ interface = "$ifname";
+ passive = 0;
+ debug = 0;
+ mediaopt = 1;
+ band = "$band";
+ channel = $channel;
+ htmode = "$htmode";
+ mcast-rate = $mcast_rate;
+ };
+};
+EOF
+ ifconfig "$ifname" up
+ meshd-nl80211 -i "$ifname" -s "$mesh_id" -c "$cfgfile" -B
+}