1
0
mirror of https://github.com/billz/raspap-webgui.git synced 2025-07-25 17:38:12 +02:00

Default to interface value in /etc/raspap/hostapd.ini

This commit is contained in:
billz 2025-04-28 00:47:16 -07:00
parent 5d8b71b768
commit 0ad82da51c
2 changed files with 49 additions and 44 deletions

View File

@ -16,7 +16,7 @@ After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/bash /etc/raspap/hostapd/servicestart.sh --interface uap0 --seconds 3
ExecStart=/bin/bash /etc/raspap/hostapd/servicestart.sh --seconds 1
RemainAfterExit=no
[Install]

View File

@ -34,6 +34,20 @@ esac
done
set -- "${positional[@]}"
# Load config file into associative array
declare -A config
if [ -r "$CONFIGFILE" ]; then
while IFS=" = " read -r key value; do
config["$key"]="$value"
done < "$CONFIGFILE"
fi
# Set interface from config if not set by parameter
if [ -z "$interface" ] && [ -n "${config[WifiInterface]}" ]; then
interface="${config[WifiInterface]}"
echo "Interface not provided. Using WifiInterface from config: $interface"
fi
echo "Stopping network services..."
if [ $OPENVPNENABLED -eq 1 ]; then
systemctl stop openvpn-client@client
@ -49,58 +63,51 @@ if [ "${action}" = "stop" ]; then
exit 0
fi
if [ -f "$DAEMONPATH" ] && [ ! -z "$interface" ]; then
if [ -f "$DAEMONPATH" ] && [ -n "$interface" ]; then
echo "Changing RaspAP Daemon --interface to $interface"
sed -i "s/\(--interface \)[[:alnum:]]*/\1$interface/" "$DAEMONPATH"
fi
if [ -r "$CONFIGFILE" ]; then
declare -A config
while IFS=" = " read -r key value; do
config["$key"]="$value"
done < "$CONFIGFILE"
if [ "${config[BridgedEnable]}" = 1 ]; then
if [ "${interface}" = "br0" ]; then
echo "Stopping systemd-networkd"
systemctl stop systemd-networkd
if [ "${config[BridgedEnable]}" = 1 ]; then
if [ "${interface}" = "br0" ]; then
echo "Stopping systemd-networkd"
systemctl stop systemd-networkd
echo "Restarting eth0 interface..."
ip link set down eth0
ip link set up eth0
echo "Restarting eth0 interface..."
ip link set down eth0
ip link set up eth0
echo "Removing uap0 interface..."
iw dev uap0 del
echo "Removing uap0 interface..."
iw dev uap0 del
echo "Enabling systemd-networkd"
systemctl start systemd-networkd
systemctl enable systemd-networkd
fi
else
echo "Disabling systemd-networkd"
systemctl disable systemd-networkd
echo "Enabling systemd-networkd"
systemctl start systemd-networkd
systemctl enable systemd-networkd
fi
else
echo "Disabling systemd-networkd"
systemctl disable systemd-networkd
ip link ls up | grep -q 'br0' &> /dev/null
if [ $? == 0 ]; then
echo "Removing br0 interface..."
ip link set down br0
ip link del dev br0
fi
ip link ls up | grep -q 'br0' &> /dev/null
if [ $? == 0 ]; then
echo "Removing br0 interface..."
ip link set down br0
ip link del dev br0
fi
if [ "${config[WifiAPEnable]}" = 1 ]; then
if [ "${interface}" = "uap0" ]; then
if [ "${config[WifiAPEnable]}" = 1 ]; then
if [ "${interface}" = "uap0" ]; then
ip link ls up | grep -q 'uap0' &> /dev/null
if [ $? == 0 ]; then
echo "Removing uap0 interface..."
iw dev uap0 del
fi
echo "Adding uap0 interface to ${config[WifiManaged]}"
iw dev ${config[WifiManaged]} interface add uap0 type __ap
# Bring up uap0 interface
ifconfig uap0 up
ip link ls up | grep -q 'uap0' &> /dev/null
if [ $? == 0 ]; then
echo "Removing uap0 interface..."
iw dev uap0 del
fi
echo "Adding uap0 interface to ${config[WifiManaged]}"
iw dev ${config[WifiManaged]} interface add uap0 type __ap
# Bring up uap0 interface
ifconfig uap0 up
fi
fi
fi
@ -122,8 +129,6 @@ if [ $OPENVPNENABLED -eq 1 ]; then
systemctl start openvpn-client@client
fi
# @mp035 found that the wifi client interface would stop every 8 seconds
# for about 16 seconds. Reassociating seems to solve this
if [ "${config[WifiAPEnable]}" = 1 ]; then
echo "Reassociating wifi client interface..."
sleep "${seconds}"