diff --git a/RELEASES-COMMITS-MAP.md b/RELEASES-COMMITS-MAP.md index b76f82a..49db6b5 100644 --- a/RELEASES-COMMITS-MAP.md +++ b/RELEASES-COMMITS-MAP.md @@ -41,3 +41,4 @@ Ship recipe: **`HOWTO-DEVEL-DEPLOY.md`**. | 0.7.0 | `60b19e108776101a1e3c038c9a6819da01c8e6cf` | dirty | 2026-09-15T22:36:42-03:00 | `9098dfbf31e60e9fada3141d0b0ae91f9d5b5b4e5c0ba2dfaf46a72794c704a2` | build | | 0.7.1 | `a27057daf60a2399706ccef1d0ef99299304b6b5` | dirty | 2026-09-16T07:22:19-03:00 | `1dcf52bc466ce7b537621b8bedcba1ffb7edd352a68625692f99083be32792f1` | build | | 0.7.2 | `8ca0618536894f2c23034aa8bbc6ce94276e7a28` | dirty | 2026-09-16T11:07:11-03:00 | `a6f072549e721c59e4d61a2eb479fe6e15ad893db742b55707e68e30bff195c0` | build | +| 0.7.3 | `a95624d025ce48c625260f5f039960662435b695` | dirty | 2026-09-17T12:29:13-03:00 | `be8e646f8040aa32a3ab143c2f18372d26d8664393a1af0b03649c873fc0b451` | build | diff --git a/internal/update/offer.go b/internal/update/offer.go index 4448ebc..0ac2d4c 100644 --- a/internal/update/offer.go +++ b/internal/update/offer.go @@ -214,6 +214,8 @@ func validSHA256(h string) bool { var allowedHosts = map[string]bool{ "releases.mmapps.com.br": true, + "releases2.mmapps.com.br": true, + "files.radio.mmapps.com.br": true, "wss-devel-radio-test-only.radio.mmapps.com.br": true, "files-devel-radio-test-only.radio.mmapps.com.br": true, "127.0.0.1": true, diff --git a/internal/update/offer_test.go b/internal/update/offer_test.go index 54c0bcc..2b1acdf 100644 --- a/internal/update/offer_test.go +++ b/internal/update/offer_test.go @@ -183,3 +183,20 @@ func TestVerifyFileSHA(t *testing.T) { t.Fatal("expected sha mismatch") } } + +func TestValidateArtifactURLFallbackHosts(t *testing.T) { + for _, u := range []string{ + "https://files.radio.mmapps.com.br/radio-app/desktop-radio/updates/0.7.3/MegaPlayRadio.exe", + "https://releases2.mmapps.com.br/desktop-radio/updates/0.7.3/MegaPlayRadio.exe", + } { + if err := ValidateArtifactURL(u); err != nil { + t.Fatalf("%s: %v", u, err) + } + } + if err := ValidateArtifactURL("https://files.radio.mmapps.com.br:8443/a.exe"); err == nil { + t.Fatal("non-443 port must still be refused") + } + if err := ValidateArtifactURL("https://wss.radio.mmapps.com.br/a.exe"); err == nil { + t.Fatal("wss host is not an artifact host") + } +}