From 13cf63cc692dec11017eae1581fe4e9c48dae2ee Mon Sep 17 00:00:00 2001 From: mutantmonkey Date: Fri, 13 Oct 2023 01:42:44 -0700 Subject: [PATCH] Ensure original media URL still works We previously were mangling the mediaUrl, which meant that the final URL was missing a path and other components. Instead, make a copy of it and use it for comparison purposes only. The only time the underlying mediaUrl will be modified is for automatic HTTPS upgrades. --- bridge.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/bridge.go b/bridge.go index df526ad..26857dc 100644 --- a/bridge.go +++ b/bridge.go @@ -120,19 +120,21 @@ func (b *bridge) handleLoadMedia(client mqtt.Client, msg mqtt.Message) { return } - mediaUrl.User = nil - mediaUrl.Path = "" - mediaUrl.RawPath = "" - mediaUrl.RawQuery = "" - mediaUrl.Fragment = "" - mediaUrl.RawFragment = "" + checkUrl := *mediaUrl + checkUrl.User = nil + checkUrl.Path = "" + checkUrl.RawPath = "" + checkUrl.RawQuery = "" + checkUrl.Fragment = "" + checkUrl.RawFragment = "" - allowedOrigin := b.mediaAllowedOrigins[mediaUrl.String()] + allowedOrigin := b.mediaAllowedOrigins[checkUrl.String()] - if !allowedOrigin && mediaUrl.Scheme == "http" && mediaUrl.Port() != "" { + if !allowedOrigin && checkUrl.Scheme == "http" && checkUrl.Port() != "" { // automatically upgrade to HTTPS if the HTTPS version of the same origin is allowed + checkUrl.Scheme = "httpss" mediaUrl.Scheme = "https" - allowedOrigin = b.mediaAllowedOrigins[mediaUrl.String()] + allowedOrigin = b.mediaAllowedOrigins[checkUrl.String()] } if allowedOrigin { -- 2.51.2