mirror of
https://github.com/BeamMP/BeamMP-Launcher.git
synced 2026-06-22 00:20:59 +00:00
fix browser open
This commit is contained in:
+23
-4
@@ -68,9 +68,28 @@ void StartSync(const std::string& Data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool IsAllowedLink(const std::string& Link) {
|
bool IsAllowedLink(const std::string& Link) {
|
||||||
std::regex link_pattern(R"(https:\/\/(?:\w+)?(?:\.)?(?:beammp\.com|discord\.gg))");
|
std::vector<std::string> allowed_links = {
|
||||||
std::smatch link_match;
|
R"(patreon\.com\/beammp$)",
|
||||||
return std::regex_search(Link, link_match, link_pattern) && link_match.position() == 0;
|
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<char> InData, SOCKET CSocket) {
|
void Parse(std::span<char> InData, SOCKET CSocket) {
|
||||||
@@ -261,7 +280,7 @@ void CoreMain() {
|
|||||||
WSACleanup();
|
WSACleanup();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if defined (__linux__)
|
#if defined(__linux__)
|
||||||
int opt = 1;
|
int opt = 1;
|
||||||
if (setsockopt(LSocket, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0)
|
if (setsockopt(LSocket, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0)
|
||||||
error("setsockopt(SO_REUSEADDR) failed");
|
error("setsockopt(SO_REUSEADDR) failed");
|
||||||
|
|||||||
Reference in New Issue
Block a user