]> git.proxmox.com Git - pve-manager.git/commitdiff
work around ipv6 browser inconsistencies
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Tue, 26 May 2015 14:09:38 +0000 (16:09 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 27 May 2015 06:28:54 +0000 (08:28 +0200)
Browsers seem to disagree on whether window.location.hostname
shouldinclude the brackets around an ipv6 address.
Adding PVE.Utils.windowHostname() to always strip them away.

www/manager/Utils.js
www/manager5/Utils.js

index 445237df5cd4e946770d1206cef75948aca2a43c..07cbd4db29ee13e8d868990f7a7ecfe2bd5fe98a 100644 (file)
@@ -44,6 +44,7 @@ var IPV6_REGEXP = "(?:" +
 
 var IP6_match = new RegExp("^(?:" + IPV6_REGEXP + ")$");
 var IP6_cidr_match = new RegExp("^(?:" + IPV6_REGEXP + ")\/[0-9]{1,3}?$");
+var IP6_bracket_match = new RegExp("^\\[(" + IPV6_REGEXP + ")\\]");
 
 var IP64_match = new RegExp("^(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + ")$");
 
@@ -920,6 +921,11 @@ Ext.define('PVE.Utils', { statics: {
            return gettext('Edit') + ': ' + subject;
        }
     },
+
+    windowHostname: function() {
+       return window.location.hostname.replace(IP6_bracket_match,
+            function(m, addr, offset, original) { return addr; });
+    },
  
     openDefaultConsoleWindow: function(allowSpice, vmtype, vmid, nodename, vmname) {
        var dv = PVE.Utils.defaultViewer(allowSpice);
@@ -941,7 +947,7 @@ Ext.define('PVE.Utils', { statics: {
            PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname, viewer === 'html5');
        } else if (viewer === 'vv') {
            var url;
-           var params = { proxy: window.location.hostname };
+           var params = { proxy: PVE.Utils.windowHostname() };
            if (vmtype === 'kvm') {
                url = '/nodes/' + nodename + '/qemu/' + vmid.toString() + '/spiceproxy';
                PVE.Utils.openSpiceViewer(url, params);
index ee00bce82dfd0d6f18fba4da561d116b8dbadce5..7a2edc75730f27a1a3de7fc519134e8bea11a33b 100644 (file)
@@ -45,6 +45,7 @@ var IPV6_REGEXP = "(?:" +
 
 var IP6_match = new RegExp("^(?:" + IPV6_REGEXP + ")$");
 var IP6_cidr_match = new RegExp("^(?:" + IPV6_REGEXP + ")\/[0-9]{1,3}?$");
+var IP6_bracket_match = new RegExp("^\\[(" + IPV6_REGEXP + ")\\]");
 
 var IP64_match = new RegExp("^(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + ")$");
 
@@ -921,6 +922,11 @@ Ext.define('PVE.Utils', { statics: {
            return gettext('Edit') + ': ' + subject;
        }
     },
+
+    windowHostname: function() {
+       return window.location.hostname.replace(IP6_bracket_match,
+            function(m, addr, offset, original) { return addr; });
+    },
  
     openDefaultConsoleWindow: function(allowSpice, vmtype, vmid, nodename, vmname) {
        var dv = PVE.Utils.defaultViewer(allowSpice);
@@ -942,7 +948,7 @@ Ext.define('PVE.Utils', { statics: {
            PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname, viewer === 'html5');
        } else if (viewer === 'vv') {
            var url;
-           var params = { proxy: window.location.hostname };
+           var params = { proxy: PVE.Utils.windowHostname() };
            if (vmtype === 'kvm') {
                url = '/nodes/' + nodename + '/qemu/' + vmid.toString() + '/spiceproxy';
                PVE.Utils.openSpiceViewer(url, params);