From 188a31c69e4250a4c80d8de3e1d9239108030415 Mon Sep 17 00:00:00 2001 From: Lion Kortlepel Date: Sat, 29 Jun 2024 22:56:11 +0200 Subject: [PATCH] fix browser open --- src/Network/Core.cpp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/Network/Core.cpp b/src/Network/Core.cpp index 54b3bcb..e52ff7b 100644 --- a/src/Network/Core.cpp +++ b/src/Network/Core.cpp @@ -68,9 +68,28 @@ void StartSync(const std::string& Data) { } bool IsAllowedLink(const std::string& Link) { - std::regex link_pattern(R"(https:\/\/(?:\w+)?(?:\.)?(?:beammp\.com|discord\.gg))"); - std::smatch link_match; - return std::regex_search(Link, link_match, link_pattern) && link_match.position() == 0; + std::vector allowed_links = { + R"(patreon\.com\/beammp$)", + R"(discord\.gg\/beammp$)", + R"(forum\.beammp\.com$)", + R"(beammp\.com$)", + R"(patreon\.com\/beammp\/$)", + R"(discord\.gg\/beammp\/$)", + R"(forum\.beammp\.com\/$)", + R"(beammp\.com\/$)", + R"(docs\.beammp\.com$)", + R"(wiki\.beammp\.com$)", + R"(docs\.beammp\.com\/$)", + R"(wiki\.beammp\.com\/$)", + R"(docs\.beammp\.com\/.*$)", + R"(wiki\.beammp\.com\/.*$)", + }; + for (const auto& allowed_link : allowed_links) { + if (std::regex_match(Link, std::regex(std::string(R"(^http(s)?:\/\/)") + allowed_link))) { + return true; + } + } + return false; } void Parse(std::span InData, SOCKET CSocket) { @@ -261,7 +280,7 @@ void CoreMain() { WSACleanup(); return; } -#if defined (__linux__) +#if defined(__linux__) int opt = 1; if (setsockopt(LSocket, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) error("setsockopt(SO_REUSEADDR) failed");