work around ipv6 browser inconsistencies

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.
This commit is contained in:
Wolfgang Bumiller 2015-05-26 16:09:38 +02:00 committed by Dietmar Maurer
parent 0e007a5dcf
commit aa0819a8a5
2 changed files with 14 additions and 2 deletions

View 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);

View 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);