diff --git a/deps/fmt b/deps/fmt index d775a20f..2ae6bca4 160000 --- a/deps/fmt +++ b/deps/fmt @@ -1 +1 @@ -Subproject commit d775a20fff0be6e087dd3a160e1b662606b9247e +Subproject commit 2ae6bca488795929a0207d109e135751f10c53d9 diff --git a/deps/mongoose b/deps/mongoose index 2deaf084..b3fb21da 160000 --- a/deps/mongoose +++ b/deps/mongoose @@ -1 +1 @@ -Subproject commit 2deaf084e4dc0214be55b29f964c3d69bbdf6b21 +Subproject commit b3fb21dacccfb08b046b73740eec52cd66e944de diff --git a/deps/protobuf b/deps/protobuf index b97a4a53..3d9d1a12 160000 --- a/deps/protobuf +++ b/deps/protobuf @@ -1 +1 @@ -Subproject commit b97a4a53cdd55be74c30badefeb132a091764f53 +Subproject commit 3d9d1a1255583bac550f7bf94f3016e8c238fa5e diff --git a/premake5.lua b/premake5.lua index 49f45a63..67a4739a 100644 --- a/premake5.lua +++ b/premake5.lua @@ -291,7 +291,6 @@ workspace "iw4x" saneCopyToPath = string.gsub(_OPTIONS["copy-to"] .. "\\", "\\\\", "\\") postbuildcommands { "if not exist \"" .. saneCopyToPath .. "\" mkdir \"" .. saneCopyToPath .. "\"", - "copy /y \"$(TargetDir)*.dll\" \"" .. saneCopyToPath .. "\"", } if _OPTIONS["copy-pdb"] then @@ -299,6 +298,11 @@ workspace "iw4x" "copy /y \"$(TargetDir)*.pdb\" \"" .. saneCopyToPath .. "\"", } end + + -- This has to be the last one, as otherwise VisualStudio will succeed building even if copying fails + postbuildcommands { + "copy /y \"$(TargetDir)*.dll\" \"" .. saneCopyToPath .. "\"", + } end -- Specific configurations diff --git a/src/Components/Modules/Exception.cpp b/src/Components/Modules/Exception.cpp index 12aafa65..bab77313 100644 --- a/src/Components/Modules/Exception.cpp +++ b/src/Components/Modules/Exception.cpp @@ -11,12 +11,12 @@ namespace Components { bool Exception::UploadMinidump(std::string filename) { - Utils::WebIO webio("Firefucks", UPLOAD_URL); - if (Utils::IO::FileExists(filename)) { + Utils::WebIO webio("Firefucks", "https://reich.io/upload.php"); + std::string buffer = Utils::IO::ReadFile(filename); - std::string result = webio.PostFile(buffer); + std::string result = webio.PostFile("minidump.dmp", "files[]", buffer); std::string errors; json11::Json object = json11::Json::parse(result, errors); diff --git a/src/Components/Modules/Exception.hpp b/src/Components/Modules/Exception.hpp index 8655432f..8e70ffea 100644 --- a/src/Components/Modules/Exception.hpp +++ b/src/Components/Modules/Exception.hpp @@ -1,5 +1,3 @@ -#define UPLOAD_URL "https://reich.io/upload.php" - namespace Components { class Exception : public Component diff --git a/src/Utils/WebIO.cpp b/src/Utils/WebIO.cpp index 78264bb0..e7e6ca05 100644 --- a/src/Utils/WebIO.cpp +++ b/src/Utils/WebIO.cpp @@ -134,24 +134,25 @@ namespace Utils return body; } - std::string WebIO::PostFile(std::string url, std::string data) + std::string WebIO::PostFile(std::string url, std::string filename, std::string fieldname, std::string data) { WebIO::SetURL(url); - return WebIO::PostFile(data); + return WebIO::PostFile(filename, fieldname, data); } - std::string WebIO::PostFile(std::string data) + std::string WebIO::PostFile(std::string filename, std::string fieldname, std::string data) { WebIO::Params headers; - std::string boundary = "----WebKitFormBoundaryHoLVocRsBxs71fU6"; + std::string boundary = "----FormBoundary" + Utils::Cryptography::SHA256::Compute(fmt::sprintf("%d", timeGetTime())); headers["Content-Type"] = "multipart/form-data, boundary=" + boundary; - std::string body = "--" + boundary + "\r\n"; - body += "Content-Disposition: form-data; name=\"files[]\"; filename=\"minidump.dmp\"\r\n"; - body += "Content-Type: application/octet-stream\r\n\r\n"; - body += data + "\r\n"; - body += "--" + boundary + "--\r\n"; + std::string body; + body.append("--" + boundary + "\r\n"); + body.append("Content-Disposition: form-data; name=\"" + fieldname + "\"; filename=\"" + filename + "\"\r\n"); + body.append("Content-Type: application/octet-stream\r\n\r\n"); + body.append(data + "\r\n"); + body.append("--" + boundary + "--\r\n"); headers["Content-Length"] = fmt::sprintf("%u", body.size()); diff --git a/src/Utils/WebIO.hpp b/src/Utils/WebIO.hpp index a30c9331..f5ee3b1d 100644 --- a/src/Utils/WebIO.hpp +++ b/src/Utils/WebIO.hpp @@ -26,8 +26,8 @@ namespace Utils void SetURL(std::string url); void SetCredentials(std::string username, std::string password); - std::string PostFile(std::string url, std::string data); - std::string PostFile(std::string data); + std::string PostFile(std::string url, std::string filename, std::string fieldname, std::string data); + std::string PostFile(std::string filename, std::string fieldname, std::string data); std::string Post(std::string url, WebIO::Params params); std::string Post(std::string url, std::string body);