1
0
mirror of https://github.com/billz/raspap-webgui.git synced 2025-07-08 13:27:39 +02:00

Read/set wgInterface, update SaveWireGuardUpload(), enumerate interfaces

This commit is contained in:
billz 2025-04-24 04:46:41 -07:00
parent c3175459ab
commit 6899389a81

View File

@ -11,13 +11,14 @@ function DisplayWireGuardConfig()
$parseFlag = true; $parseFlag = true;
if (!RASPI_MONITOR_ENABLED) { if (!RASPI_MONITOR_ENABLED) {
$optRules = isset($_POST['wgRules']) ? $_POST['wgRules'] : null; $optRules = isset($_POST['wgRules']) ? $_POST['wgRules'] : null;
$optInterface = isset($_POST['wgInterface']) ? $_POST['wgInterface'] : null;
$optConf = isset($_POST['wgCnfOpt']) ? $_POST['wgCnfOpt'] : null; $optConf = isset($_POST['wgCnfOpt']) ? $_POST['wgCnfOpt'] : null;
$optSrvEnable = isset($_POST['wgSrvEnable']) ? $_POST['wgSrvEnable'] : null; $optSrvEnable = isset($_POST['wgSrvEnable']) ? $_POST['wgSrvEnable'] : null;
$optLogEnable = isset($_POST['wgLogEnable']) ? $_POST['wgLogEnable'] : null; $optLogEnable = isset($_POST['wgLogEnable']) ? $_POST['wgLogEnable'] : null;
if (isset($_POST['savewgsettings']) && $optConf == 'manual' && $optSrvEnable == 1 ) { if (isset($_POST['savewgsettings']) && $optConf == 'manual' && $optSrvEnable == 1 ) {
SaveWireGuardConfig($status); SaveWireGuardConfig($status);
} elseif (isset($_POST['savewgsettings']) && $optConf == 'upload' && is_uploaded_file($_FILES["wgFile"]["tmp_name"])) { } elseif (isset($_POST['savewgsettings']) && $optConf == 'upload' && is_uploaded_file($_FILES["wgFile"]["tmp_name"])) {
SaveWireGuardUpload($status, $_FILES['wgFile'], $optRules); SaveWireGuardUpload($status, $_FILES['wgFile'], $optRules, $optInterface);
} elseif (isset($_POST['savewgsettings']) && isset($_POST['wg_penabled']) ) { } elseif (isset($_POST['savewgsettings']) && isset($_POST['wg_penabled']) ) {
SaveWireGuardConfig($status); SaveWireGuardConfig($status);
} elseif (isset($_POST['startwg'])) { } elseif (isset($_POST['startwg'])) {
@ -77,12 +78,17 @@ function DisplayWireGuardConfig()
} }
$peer_id = $peer_id ?? "1"; $peer_id = $peer_id ?? "1";
// fetch available interfaces
exec("ip -o link show | awk -F': ' '{print $2}'", $interfaces);
sort($interfaces);
echo renderTemplate( echo renderTemplate(
"wireguard", compact( "wireguard", compact(
"status", "status",
"wg_state", "wg_state",
"serviceStatus", "serviceStatus",
"public_ip", "public_ip",
"interfaces",
"optRules", "optRules",
"optLogEnable", "optLogEnable",
"peer_id", "peer_id",
@ -110,9 +116,10 @@ function DisplayWireGuardConfig()
* @param object $status * @param object $status
* @param object $file * @param object $file
* @param boolean $optRules * @param boolean $optRules
* @param string $optInterface
* @return object $status * @return object $status
*/ */
function SaveWireGuardUpload($status, $file, $optRules) function SaveWireGuardUpload($status, $file, $optRules, $optInterface)
{ {
define('KB', 1024); define('KB', 1024);
$tmp_destdir = '/tmp/'; $tmp_destdir = '/tmp/';
@ -147,7 +154,7 @@ function SaveWireGuardUpload($status, $file, $optRules)
$rules[] = 'PostDown = '.getDefaultNetValue('wireguard','server','PostDown'); $rules[] = 'PostDown = '.getDefaultNetValue('wireguard','server','PostDown');
$rules[] = ''; $rules[] = '';
$rules = join(PHP_EOL, $rules); $rules = join(PHP_EOL, $rules);
$rules = preg_replace('/wlan0/m', $_SESSION['ap_interface'], $rules); $rules = preg_replace('/wlan0/m', $optInterface, $rules);
$tmp_contents = preg_replace('/^\s*$/ms', $rules, $tmp_contents, 1); $tmp_contents = preg_replace('/^\s*$/ms', $rules, $tmp_contents, 1);
file_put_contents($tmp_wgconfig, $tmp_contents); file_put_contents($tmp_wgconfig, $tmp_contents);
} }