[pve-devel] [PATCH 2/2] work around ipv6 browser inconsistencies
Wolfgang Bumiller
w.bumiller at proxmox.com
Tue May 26 16:09:38 CEST 2015
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 | 8 +++++++-
www/manager5/Utils.js | 8 +++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/www/manager/Utils.js b/www/manager/Utils.js
index 445237d..07cbd4d 100644
--- a/www/manager/Utils.js
+++ b/www/manager/Utils.js
@@ -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);
diff --git a/www/manager5/Utils.js b/www/manager5/Utils.js
index ee00bce..7a2edc7 100644
--- a/www/manager5/Utils.js
+++ b/www/manager5/Utils.js
@@ -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);
--
2.1.4
More information about the pve-devel
mailing list