mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
Upload wg config, set postup/down rules, move to destination
This commit is contained in:
parent
fbe1348e15
commit
225bff59b6
@ -10,10 +10,11 @@ function DisplayWireGuardConfig()
|
|||||||
{
|
{
|
||||||
$status = new StatusMessages();
|
$status = new StatusMessages();
|
||||||
if (!RASPI_MONITOR_ENABLED) {
|
if (!RASPI_MONITOR_ENABLED) {
|
||||||
if (isset($_POST['savewgsettings'])) {
|
$optRules = $_POST['wgRules'];
|
||||||
|
if (isset($_POST['savewgsettings']) && !is_uploaded_file($_FILES["wgFile"]["tmp_name"])) {
|
||||||
SaveWireGuardConfig($status);
|
SaveWireGuardConfig($status);
|
||||||
} elseif (is_uploaded_file( $_FILES["wgFile"]["tmp_name"])) {
|
} elseif (isset($_POST['savewgsettings']) && is_uploaded_file($_FILES["wgFile"]["tmp_name"])) {
|
||||||
SaveWireGuardUpload($status, $_FILES['wgFile']);
|
SaveWireGuardUpload($status, $_FILES['wgFile'], $optRules);
|
||||||
} elseif (isset($_POST['startwg'])) {
|
} elseif (isset($_POST['startwg'])) {
|
||||||
$status->addMessage('Attempting to start WireGuard', 'info');
|
$status->addMessage('Attempting to start WireGuard', 'info');
|
||||||
exec('sudo /bin/systemctl start wg-quick@wg0', $return);
|
exec('sudo /bin/systemctl start wg-quick@wg0', $return);
|
||||||
@ -63,6 +64,7 @@ function DisplayWireGuardConfig()
|
|||||||
"status",
|
"status",
|
||||||
"wg_state",
|
"wg_state",
|
||||||
"serviceStatus",
|
"serviceStatus",
|
||||||
|
"optRules",
|
||||||
"wg_log",
|
"wg_log",
|
||||||
"peer_id",
|
"peer_id",
|
||||||
"wg_srvpubkey",
|
"wg_srvpubkey",
|
||||||
@ -87,9 +89,10 @@ function DisplayWireGuardConfig()
|
|||||||
*
|
*
|
||||||
* @param object $status
|
* @param object $status
|
||||||
* @param object $file
|
* @param object $file
|
||||||
|
* @param boolean $optRules
|
||||||
* @return object $status
|
* @return object $status
|
||||||
*/
|
*/
|
||||||
function SaveWireGuardUpload($status, $file)
|
function SaveWireGuardUpload($status, $file, $optRules)
|
||||||
{
|
{
|
||||||
define('KB', 1024);
|
define('KB', 1024);
|
||||||
$tmp_destdir = '/tmp/';
|
$tmp_destdir = '/tmp/';
|
||||||
@ -114,12 +117,23 @@ function SaveWireGuardUpload($status, $file)
|
|||||||
throw new RuntimeException($results['errors'][0]);
|
throw new RuntimeException($results['errors'][0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Good file upload, do any post-processing
|
// Valid upload, get file contents
|
||||||
|
$tmp_wgconfig = $results['full_path'];
|
||||||
|
$tmp_contents = file_get_contents($tmp_wgconfig);
|
||||||
|
|
||||||
// Set iptables rules
|
// Set iptables rules
|
||||||
|
if (isset($optRules) && !preg_match('/PostUp|PostDown/m',$tmp_contents)) {
|
||||||
|
$rules[] = 'PostUp = '.getDefaultNetValue('wireguard','server','PostUp');
|
||||||
|
$rules[] = 'PostDown = '.getDefaultNetValue('wireguard','server','PostDown');
|
||||||
|
$rules[] = '';
|
||||||
|
$rules = join(PHP_EOL, $rules);
|
||||||
|
$rules = preg_replace('/wlan0/m', $_SESSION['ap_interface'], $rules);
|
||||||
|
$tmp_contents = preg_replace('/^\s*$/ms', $rules, $tmp_contents, 1);
|
||||||
|
file_put_contents($tmp_wgconfig, $tmp_contents);
|
||||||
|
}
|
||||||
|
|
||||||
// Move uploaded .conf from /tmp to destination
|
// Move uploaded file from to destination
|
||||||
|
system("sudo mv $tmp_wgconfig ". RASPI_WIREGUARD_CONFIG, $return);
|
||||||
|
|
||||||
if ($return ==0) {
|
if ($return ==0) {
|
||||||
$status->addMessage('WireGuard configuration uploaded successfully', 'info');
|
$status->addMessage('WireGuard configuration uploaded successfully', 'info');
|
||||||
|
Loading…
Reference in New Issue
Block a user