From bc41cab97660aac887bb3494c312a70fde6795ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenz=20H=C3=BCbschle-Schneider?= Date: Mon, 7 Jun 2021 18:08:25 +0200 Subject: [PATCH] Strip protocol information from host field, checking for encryption Fixes #1192 --- src/js/glowingbear.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/js/glowingbear.js b/src/js/glowingbear.js index a0f01cf..034958c 100644 --- a/src/js/glowingbear.js +++ b/src/js/glowingbear.js @@ -663,9 +663,20 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', $rootScope.hostInvalid = false; var parts; + var regexProto = /^(https?|wss?):\/\/(.+)$/; var regexHost = /^([^:\/]*|\[.*\])$/; var regexHostPort = /^([^:]*|\[.*\]):(\d+)$/; - var regexHostPortPath = /^([^:]*|\[.*\]):(\d*)\/(.+)$/; + var regexHostPortPath = /^([^:]*|\[.*\]):(\d+)\/(.+)$/; + + // First, remove possible protocol info - we don't want it + if ((parts = regexProto.exec(settings.hostField)) !== null) { + settings.hostField = parts[2]; + if (parts[1] === "http" || parts[1] === "ws") { + settings.ssl = false; + } else if (parts[1] === "https" || parts[1] === "wss") { + settings.ssl = true; + } + } if ((parts = regexHost.exec(settings.hostField)) !== null) { //host only settings.host = parts[1];