diff --git a/pandora_console/godmode/setup/setup_websocket_engine.php b/pandora_console/godmode/setup/setup_websocket_engine.php
index e042ae7788..aa03ffa341 100644
--- a/pandora_console/godmode/setup/setup_websocket_engine.php
+++ b/pandora_console/godmode/setup/setup_websocket_engine.php
@@ -80,6 +80,30 @@ $t->data[1][] = html_print_label_input_block(
);
html_print_input_hidden('update_config', 1);
+
+// Test.
+$row = [];
+$test_start = ' '.html_print_image('images/spinner.gif', true).'';
+$test_start .= ' ';
+$row['gotty_test'] = html_print_label_input_block(
+ __('Test'),
+ html_print_button(
+ __('Start'),
+ 'test-gotty',
+ false,
+ 'handleTest()',
+ [
+ 'icon' => 'cog',
+ 'mode' => 'secondary mini',
+ 'style' => 'width: 115px;',
+ ],
+ true
+ ).$test_start,
+ ['div_class' => 'inline_flex row']
+);
+
+$t->data['gotty_test'] = $row;
+
html_print_table($t);
echo '';
@@ -99,3 +123,73 @@ html_print_action_buttons(
);
echo '';
+
+echo '';
diff --git a/pandora_console/include/lib/Websockets/WSManager.php b/pandora_console/include/lib/Websockets/WSManager.php
index a193d8ba8a..6abce7051c 100644
--- a/pandora_console/include/lib/Websockets/WSManager.php
+++ b/pandora_console/include/lib/Websockets/WSManager.php
@@ -301,7 +301,7 @@ class WSManager extends WebSocketServer
\db_pandora_audit(
AUDIT_LOG_WEB_SOCKETS,
'WebSocket connection started',
- $user->account->idUser
+ 'N/A'
);
$this->stderr('ONLINE '.$user->address.'('.$user->account->idUser.')');
@@ -424,7 +424,7 @@ class WSManager extends WebSocketServer
\db_pandora_audit(
AUDIT_LOG_WEB_SOCKETS,
'WebSocket connection finished',
- $user->account->idUser
+ 'N/A'
);
$this->stderr('OFFLINE '.$user->address.'('.$user->account->idUser.')');
diff --git a/pandora_console/include/lib/Websockets/WebSocketServer.php b/pandora_console/include/lib/Websockets/WebSocketServer.php
index 5294d6b6fc..e352dd5506 100644
--- a/pandora_console/include/lib/Websockets/WebSocketServer.php
+++ b/pandora_console/include/lib/Websockets/WebSocketServer.php
@@ -472,7 +472,7 @@ abstract class WebSocketServer
} else if ($numBytes == 0) {
$this->disconnect($socket);
$this->stderr(
- 'Client disconnected. TCP connection lost: '.$socket
+ 'Client disconnected. TCP connection lost'
);
} else {
$user = $this->getUserBySocket($socket);
@@ -521,7 +521,7 @@ abstract class WebSocketServer
} else if ($numBytes == 0) {
$this->disconnect($socket);
$this->stderr(
- 'Client disconnected. TCP connection lost: '.$socket
+ 'Client disconnected. TCP connection lost.'
);
} else {
$user = $this->getUserBySocket($socket);
@@ -581,6 +581,7 @@ abstract class WebSocketServer
$sockErrNo=null
) {
$user = $this->getUserBySocket($socket);
+
if ($user !== null) {
if (array_key_exists($user->id, $this->users)) {
unset($this->users[$user->id]);
diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css
index d6fec23c27..adf1325b07 100644
--- a/pandora_console/include/styles/pandora.css
+++ b/pandora_console/include/styles/pandora.css
@@ -10616,6 +10616,11 @@ button div.cog {
contain;
}
+button div.tick {
+ mask: url(../../images/input_tick.png) no-repeat center / contain;
+ -webkit-mask: url(../../images/input_tick.png) no-repeat center / contain;
+}
+
button div.info {
mask: url(../../images/info@svg.svg) no-repeat center / contain;
-webkit-mask: url(../../images/info@svg.svg) no-repeat center / contain;
diff --git a/pandora_console/ws.php b/pandora_console/ws.php
index c55e884d24..798381b69d 100644
--- a/pandora_console/ws.php
+++ b/pandora_console/ws.php
@@ -116,7 +116,7 @@ if (substr($os, 0, 3) !== 'win') {
// Common.
$base_cmd = 'nohup "'.$config['gotty'].'" '.$gotty_creds;
- $base_cmd .= ' --permit-arguments -a 127.0.0.1 -w ';
+ $base_cmd .= ' --permit-arguments -a '.$config['gotty_host'].' -w ';
// Launch gotty - SSH.
$cmd = $base_cmd.' --port '.$config['gotty_ssh_port'];