summaryrefslogtreecommitdiff
path: root/web/share/js/kvm
diff options
context:
space:
mode:
Diffstat (limited to 'web/share/js/kvm')
-rw-r--r--web/share/js/kvm/session.js25
1 files changed, 19 insertions, 6 deletions
diff --git a/web/share/js/kvm/session.js b/web/share/js/kvm/session.js
index 5ba43511..95f8fd88 100644
--- a/web/share/js/kvm/session.js
+++ b/web/share/js/kvm/session.js
@@ -46,12 +46,25 @@ function Session() {
var __startSession = function() {
$("link-led").className = "led-yellow";
$("link-led").title = "Connecting...";
- var proto = (location.protocol === "https:" ? "wss" : "ws");
- __ws = new WebSocket(`${proto}://${location.host}/kvmd/ws`);
- __ws.onopen = __wsOpenHandler;
- __ws.onmessage = __wsMessageHandler;
- __ws.onerror = __wsErrorHandler;
- __ws.onclose = __wsCloseHandler;
+
+ var http = tools.makeRequest("GET", "/kvmd/auth/check", function() {
+ if (http.readyState === 4) {
+ if (http.status === 200) {
+ var proto = (location.protocol === "https:" ? "wss" : "ws");
+ __ws = new WebSocket(`${proto}://${location.host}/kvmd/ws`);
+ __ws.onopen = __wsOpenHandler;
+ __ws.onmessage = __wsMessageHandler;
+ __ws.onerror = __wsErrorHandler;
+ __ws.onclose = __wsCloseHandler;
+ } else if (http.status === 401 || http.status === 403) {
+ wm.error("Unexpected logout occured, please login again").then(function() {
+ document.location.href = "/login";
+ });
+ } else {
+ __wsCloseHandler(null);
+ }
+ }
+ });
};
var __wsOpenHandler = function(event) {