From fd50f2dc9a60ba472ce4076dbed32d830a80791b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20B=C3=A1lint=20Misius?= Date: Wed, 21 Jun 2023 22:41:30 +0200 Subject: [PATCH] Emscripten: Use custom user agent --- src/client/http/requestmanager/Emscripten.cpp | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/client/http/requestmanager/Emscripten.cpp b/src/client/http/requestmanager/Emscripten.cpp index ad25be373..4ced03198 100644 --- a/src/client/http/requestmanager/Emscripten.cpp +++ b/src/client/http/requestmanager/Emscripten.cpp @@ -150,17 +150,28 @@ namespace http Module.emscriptenRequestManager.requests[id] = request; return id; }, requestHandle->uri.c_str()); - if (handle->headers.size()) { + auto userAgentSet = false; for (auto &header : handle->headers) { - EM_ASM({ - Module.emscriptenRequestManager.requests[$0].fetchHeaders.append( - UTF8ToString($1), - UTF8ToString($2) - ); - }, handle->id, header.name.c_str(), header.value.c_str()); + if (header.name.ToLower() == "user-agent") + { + userAgentSet = true; + } } + if (!userAgentSet) + { + handle->headers.push_back({ "user-agent", userAgent }); + } + } + for (auto &header : handle->headers) + { + EM_ASM({ + Module.emscriptenRequestManager.requests[$0].fetchHeaders.append( + UTF8ToString($1), + UTF8ToString($2) + ); + }, handle->id, header.name.c_str(), header.value.c_str()); } auto &postData = handle->postData; if (std::holds_alternative(postData) && std::get(postData).size())