diff --git a/modules/servers/solusvmpro/js/get_user_data.js b/modules/servers/solusvmpro/js/get_user_data.js
index b9cbbf4..3bb8f3d 100644
--- a/modules/servers/solusvmpro/js/get_user_data.js
+++ b/modules/servers/solusvmpro/js/get_user_data.js
@@ -47,7 +47,8 @@ $(function () {
$("#controlpanellink").attr("onclick", "window.open('" + data.controlpanellink + "','_blank')");
}
- var optionsIds = ["displayreboot", "displayshutdown", "displayboot", "displayconsole", "displayhtml5console", "displayvnc", "displayrootpassword", "displayhostname", "displayvncpassword", "displayrescuemode", "displaypanelbutton", "displayclientkeyauth"];
+ var optionsIds = ["displayreboot", "displayshutdown", "displayboot", "displayconsole", "displayhtml5console", "displayvnc", "displayrootpassword", "displayhostname", "displayvncpassword", "displayrescuemode", "displaypanelbutton", "displayclientkeyauth", "displaytunenable", "displaytundisable"];
+
var showOptions = false;
optionsIds.forEach(function (v) {
if (data.hasOwnProperty(v)) {
diff --git a/modules/servers/solusvmpro/lang/english.php b/modules/servers/solusvmpro/lang/english.php
index 8aa58a9..bdac733 100644
--- a/modules/servers/solusvmpro/lang/english.php
+++ b/modules/servers/solusvmpro/lang/english.php
@@ -4,7 +4,6 @@
die( "This file cannot be accessed directly" );
}
-
$_LANG['solusvmpro_reboot'] = 'Reboot';
$_LANG['solusvmpro_boot'] = 'Boot';
$_LANG['solusvmpro_shutdown'] = 'Shutdown';
@@ -103,4 +102,5 @@
$_LANG['solusvmpro_port'] = 'Port';
$_LANG['solusvmpro_rescueenabled'] = 'Enabled - Rescue mode can take several minutes before it becomes accessible on the network';
$_LANG['solusvmpro_rescuedisabled'] = 'Disabled - The server is now rebooting into the original system';
-
+$_LANG['solusvmpro_tuntap_enable'] = 'Enable TUN/TAP';
+$_LANG['solusvmpro_tuntap_disable'] = 'Disable TUN/TAP';
diff --git a/modules/servers/solusvmpro/lib/SolusVM.php b/modules/servers/solusvmpro/lib/SolusVM.php
index 7545305..a4e5122 100644
--- a/modules/servers/solusvmpro/lib/SolusVM.php
+++ b/modules/servers/solusvmpro/lib/SolusVM.php
@@ -823,6 +823,14 @@ public function clientAreaCalculations( $result ) {
}
$cparams["displaygraphs"] = 1;
}
+
+ if ( $this->getExtData( "tun-enable" ) != "disable" ) {
+ $cparams["displaytunenable"] = 1;
+ }
+
+ if ( $this->getExtData( "tun-disable" ) != "disable" ) {
+ $cparams["displaytundisable"] = 1;
+ }
return $cparams;
}
diff --git a/modules/servers/solusvmpro/solusvmpro.php b/modules/servers/solusvmpro/solusvmpro.php
index 7ef383e..9e2d458 100644
--- a/modules/servers/solusvmpro/solusvmpro.php
+++ b/modules/servers/solusvmpro/solusvmpro.php
@@ -537,6 +537,8 @@ function solusvmpro_AdminCustomButtonArray() {
$_LANG["solusvmpro_reboot"] => "reboot",
$_LANG["solusvmpro_shutdown"] => "shutdown",
$_LANG["solusvmpro_boot"] => "boot",
+ $_LANG["solusvmpro_tuntap_enable"] => "tuntap_enable",
+ $_LANG["solusvmpro_tuntap_disable"] => "tuntap_disable",
);
}
@@ -547,6 +549,8 @@ function solusvmpro_ClientAreaCustomButtonArray() {
$_LANG["solusvmpro_reboot"] => "reboot",
$_LANG["solusvmpro_shutdown"] => "shutdown",
$_LANG["solusvmpro_boot"] => "boot",
+ $_LANG["solusvmpro_tuntap_enable"] => "tuntap_enable",
+ $_LANG["solusvmpro_tuntap_disable"] => "tuntap_disable",
);
}
@@ -655,6 +659,76 @@ function solusvmpro_shutdown( $params ) {
}
}
+################################################################################
+### TUN/TAP Enable function ###
+################################################################################
+
+function solusvmpro_tuntap_enable( $params ) {
+ try {
+ $solusvm = new SolusVM( $params );
+ $customField = $solusvm->getParam( "customfields" );
+
+ ## The call string for the connection fuction
+ $callArray = array( "vserverid" => $customField["vserverid"] );
+
+ $solusvm->apiCall( 'vserver-tun-enable', $callArray );
+
+ if ( $solusvm->result["status"] == "success" ) {
+ $result = "success";
+ } else {
+ $result = (string) $solusvm->result["statusmsg"];
+ }
+
+ return $result;
+ } catch ( Exception $e ) {
+ // Record the error in WHMCS's module log.
+ logModuleCall(
+ 'shutdown',
+ __FUNCTION__,
+ $params,
+ $e->getMessage(),
+ $e->getTraceAsString()
+ );
+
+ return $e->getMessage();
+ }
+}
+
+################################################################################
+### TUN/TAP Disable function ###
+################################################################################
+
+function solusvmpro_tuntap_disable( $params ) {
+ try {
+ $solusvm = new SolusVM( $params );
+ $customField = $solusvm->getParam( "customfields" );
+
+ ## The call string for the connection fuction
+ $callArray = array( "vserverid" => $customField["vserverid"] );
+
+ $solusvm->apiCall( 'vserver-tun-disable', $callArray );
+
+ if ( $solusvm->result["status"] == "success" ) {
+ $result = "success";
+ } else {
+ $result = (string) $solusvm->result["statusmsg"];
+ }
+
+ return $result;
+ } catch ( Exception $e ) {
+ // Record the error in WHMCS's module log.
+ logModuleCall(
+ 'shutdown',
+ __FUNCTION__,
+ $params,
+ $e->getMessage(),
+ $e->getTraceAsString()
+ );
+
+ return $e->getMessage();
+ }
+}
+
################################################################################
### Upgrade / Downgrade account function ###
diff --git a/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl b/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl
index b3f1c42..92d309c 100644
--- a/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl
+++ b/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl
@@ -207,6 +207,18 @@
value="{$LANG.solusvmpro_manage}">
+
+