mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	Add bridged-routed toggle to webgui
This commit is contained in:
		| @@ -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"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user