mirror of
https://github.com/RaspAP/raspap-webgui.git
synced 2024-11-21 23:20:22 +00:00
Add bridged-routed toggle to webgui
This commit is contained in:
parent
8bda81adcb
commit
8823c0602e
5 changed files with 75 additions and 13 deletions
|
@ -33,6 +33,8 @@ function DisplayHostAPDConfig()
|
|||
$status->addMessage('Attempting to start hotspot', 'info');
|
||||
if ($arrHostapdConf['WifiAPEnable'] == 1) {
|
||||
exec('sudo /etc/raspap/hostapd/servicestart.sh --interface uap0 --seconds 3', $return);
|
||||
} elseif ($arrHostapdConf['BridgedEnable'] == 1) {
|
||||
exec('sudo /etc/raspap/hostapd/servicestart.sh --interface br0 --seconds 3', $return);
|
||||
} else {
|
||||
exec('sudo /etc/raspap/hostapd/servicestart.sh --seconds 3', $return);
|
||||
}
|
||||
|
@ -120,6 +122,18 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
|||
}
|
||||
}
|
||||
|
||||
// Check for Bridged AP mode checkbox
|
||||
$bridgedEnable = 0;
|
||||
if ($arrHostapdConf['BridgedEnable'] == 0) {
|
||||
if (isset($_POST['bridgedEnable'])) {
|
||||
$bridgedEnable = 1;
|
||||
}
|
||||
} else {
|
||||
if (isset($_POST['bridgedEnable'])) {
|
||||
$bridgedEnable = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for Logfile output checkbox
|
||||
$logEnable = 0;
|
||||
if ($arrHostapdConf['LogEnable'] == 0) {
|
||||
|
@ -140,6 +154,7 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
|||
$cfg = [];
|
||||
$cfg['LogEnable'] = $logEnable;
|
||||
$cfg['WifiAPEnable'] = $wifiAPEnable;
|
||||
$cfg['BridgedEnable'] = $bridgedEnable;
|
||||
$cfg['WifiManaged'] = RASPI_WIFI_CLIENT_INTERFACE;
|
||||
write_php_ini($cfg, '/etc/raspap/hostapd.ini');
|
||||
|
||||
|
@ -228,6 +243,9 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
|||
$config.= 'interface=uap0'.PHP_EOL;
|
||||
} else {
|
||||
$config.= 'interface='.$_POST['interface'].PHP_EOL;
|
||||
if ($bridgedEnable == 1) {
|
||||
$config.= 'bridge=br0'.PHP_EOL;
|
||||
}
|
||||
}
|
||||
$config.= 'wpa='.$_POST['wpa'].PHP_EOL;
|
||||
$config.= 'wpa_pairwise='.$_POST['wpa_pairwise'].PHP_EOL;
|
||||
|
@ -288,7 +306,10 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
|||
$config[] = 'slaac private';
|
||||
$config[] = 'nohook lookup-hostname';
|
||||
|
||||
if ($wifiAPEnable == 1) {
|
||||
if ($bridgedEnable == 1) {
|
||||
$config[] = 'denyinterfaces eth0 wlan0';
|
||||
$config[] = 'interface br0';
|
||||
} elseif ($wifiAPEnable == 1) {
|
||||
// Enable uap0 configuration in dhcpcd for Wifi client AP mode
|
||||
$intConfig = parse_ini_file(RASPI_CONFIG_NETWORKING.'/uap0.ini', false, INI_SCANNER_RAW);
|
||||
$ip_address = ($intConfig['ip_address'] == '') ? '192.168.50.1/24' : $intConfig['ip_address'];
|
||||
|
|
|
@ -177,7 +177,7 @@ function download_latest_files() {
|
|||
fi
|
||||
|
||||
install_log "Cloning latest files from github"
|
||||
git clone --single-branch $branch --depth 1 $git_source_url /tmp/raspap-webgui || install_error "Unable to download files from github"
|
||||
git clone --branch $branch --depth 1 $git_source_url /tmp/raspap-webgui || install_error "Unable to download files from github"
|
||||
|
||||
sudo mv /tmp/raspap-webgui $webroot_dir || install_error "Unable to move raspap-webgui to web root"
|
||||
}
|
||||
|
@ -220,8 +220,11 @@ function check_for_old_configs() {
|
|||
fi
|
||||
|
||||
for file in /etc/systemd/network/raspap-*.net*; do
|
||||
sudo cp "$file" "${raspap_dir}/backups/${file}.`date +%F-%R`"
|
||||
sudo ln -sf "${raspap_dir}/backups/${file}.`date +%F-%R`" "${raspap_dir}/backups/${file}"
|
||||
if [-f "${file}" ]; then
|
||||
filename = $(basename $file)
|
||||
sudo cp "$file" "${raspap_dir}/backups/${filename}.`date +%F-%R`"
|
||||
sudo ln -sf "${raspap_dir}/backups/${filename}.`date +%F-%R`" "${raspap_dir}/backups/${filename}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|||
NAME=raspap
|
||||
DESC="Service control for RaspAP"
|
||||
CONFIGFILE="/etc/raspap/hostapd.ini"
|
||||
DAEMONPATH="/lib/systemd/system/raspap.service"
|
||||
|
||||
positional=()
|
||||
while [[ $# -gt 0 ]]
|
||||
|
@ -28,25 +29,50 @@ done
|
|||
set -- "${positional[@]}"
|
||||
|
||||
echo "Stopping network services..."
|
||||
systemctl stop systemd-networkd
|
||||
systemctl stop hostapd.service
|
||||
systemctl stop dnsmasq.service
|
||||
systemctl stop dhcpcd.service
|
||||
|
||||
if [ -f "$DAEMONPATH" ]; 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[WifiAPEnable]}" = 1 ]; then
|
||||
if [ "${interface}" = "uap0" ]; then
|
||||
echo "Removing uap0 interface..."
|
||||
iw dev uap0 del
|
||||
|
||||
echo "Adding uap0 interface to ${config[WifiManaged]}"
|
||||
iw dev ${config[WifiManaged]} interface add uap0 type __ap
|
||||
# Bring up uap0 interface
|
||||
ifconfig uap0 up
|
||||
if [ "${config[BridgedEnable]}" = 1 ]; then
|
||||
if [ "${interface}" = "br0" ]; then
|
||||
echo "Restarting eth0 interface..."
|
||||
ip link set down eth0
|
||||
ip link set up eth0
|
||||
|
||||
echo "Enabling systemd-networkd"
|
||||
systemctl start systemd-networkd
|
||||
systemctl enable systemd-networkd
|
||||
fi
|
||||
else
|
||||
echo "Disabling systemd-networkd"
|
||||
systemctl disable systemd-networkd
|
||||
|
||||
echo "Removing br0 interface..."
|
||||
ip link set down br0
|
||||
ip link del dev br0
|
||||
|
||||
if [ "${config[WifiAPEnable]}" = 1 ]; then
|
||||
if [ "${interface}" = "uap0" ]; then
|
||||
echo "Removing uap0 interface..."
|
||||
iw dev uap0 del
|
||||
|
||||
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
|
||||
fi
|
||||
|
|
|
@ -429,6 +429,9 @@ msgstr "Logfile output"
|
|||
msgid "WiFi client AP mode"
|
||||
msgstr "WiFi client AP mode"
|
||||
|
||||
msgid "Bridged AP mode"
|
||||
msgstr "Bridged AP mode"
|
||||
|
||||
msgid "Hide SSID in broadcast"
|
||||
msgstr "Hide SSID in broadcast"
|
||||
|
||||
|
|
|
@ -134,6 +134,15 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-2">
|
||||
<div class="custom-control custom-switch">
|
||||
<?php $checked = $arrHostapdConf['BridgedEnable'] == 1 ? 'checked="checked"' : '' ?>
|
||||
<input class="custom-control-input" id="chxbridgedenable" name="bridgedEnable" type="checkbox" value="1" <?php echo $checked ?> />
|
||||
<label class="custom-control-label" for="chxbridgedenable"><?php echo _("Bridged AP mode"); ?></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-2">
|
||||
<div class="custom-control custom-switch">
|
||||
|
|
Loading…
Reference in a new issue