diff --git a/Tubio/DownloadManager.cpp b/Tubio/DownloadManager.cpp index 6d9b281..c17c38b 100644 --- a/Tubio/DownloadManager.cpp +++ b/Tubio/DownloadManager.cpp @@ -65,7 +65,7 @@ std::string DownloadManager::QueueDownload(std::string url, DOWNLOAD_MODE mode) if ((j.AsJson.DoesExist("duration")) && (j.AsJson["duration"].GetDataType() == JDType::INT)) { - newDownload.duration = j["duration"].AsInt; + newDownload.duration = (uint32_t)j["duration"].AsInt; } if ((j.AsJson.DoesExist("webpage_url")) && (j.AsJson["webpage_url"].GetDataType() == JDType::STRING)) @@ -104,7 +104,7 @@ void DownloadManager::Update() std::size_t cachedNumActiveDownloads = GetNumActiveDownloads(); // Queue next download, if available - if (cachedNumActiveDownloads < XGConfig::downloader.num_threads) + if ((long long)cachedNumActiveDownloads < (long long)XGConfig::downloader.num_threads) { DownloadNext(); } @@ -141,7 +141,8 @@ void DownloadManager::DownloadNext() break; } } - next->status = DOWNLOAD_STATUS::DOWNLOADING; + if (next) + next->status = DOWNLOAD_STATUS::DOWNLOADING; std::thread* downloadThread = new std::thread([=]() { DownloadEntry* entry = next; @@ -360,7 +361,6 @@ bool DownloadManager::ClearDownloadCache() bool DownloadManager::RemoveFromCacheByID(std::string id) { - bool removedAny = false; std::string filePath = ""; bool wasFinished = false; for (std::size_t i = 0; i < unfinishedCache.size(); i++) @@ -368,7 +368,6 @@ bool DownloadManager::RemoveFromCacheByID(std::string id) if (unfinishedCache[i].tubio_id == id) { filePath = unfinishedCache[i].downloaded_filename; - removedAny = true; // Edgecase wasFinished = unfinishedCache[i].status == DOWNLOAD_STATUS::FINISHED; unfinishedCache.erase(unfinishedCache.begin() + i); @@ -385,7 +384,6 @@ bool DownloadManager::RemoveFromCacheByID(std::string id) if (saveFileCache[i]["tubio_id"].AsString == id) { saveFileCache.RemoveAt(i); - removedAny = true; break; } } @@ -395,7 +393,6 @@ bool DownloadManager::RemoveFromCacheByID(std::string id) if (saveFileCache_Atomic[i].tubio_id == id) { filePath = saveFileCache_Atomic[i].downloaded_filename; - removedAny = true; wasFinished = saveFileCache_Atomic[i].status == DOWNLOAD_STATUS::FINISHED; saveFileCache_Atomic.erase(saveFileCache_Atomic.begin() + i); break; @@ -526,7 +523,7 @@ std::vector DownloadManager::ParseJsonArrayToEntries(const JasonP if ((iter.DoesExist("duration")) && (iter["duration"].GetDataType() == JDType::INT)) { - newEntry.duration = iter["duration"].AsInt; + newEntry.duration = (uint32_t)iter["duration"].AsInt; } if ((iter.DoesExist("tubio_id")) && (iter["tubio_id"].GetDataType() == JDType::STRING)) @@ -680,6 +677,26 @@ bool DownloadManager::shouldClearCacheASAP = false; +Downloader::DownloadEntry::DownloadEntry() +{ + // Some initial values + title = ""; + description = ""; + uploader = ""; + duration = -1; + tubio_id = ""; + webpage_url = ""; + thumbnail_url = ""; + downloaded_filename = ""; + download_url = ""; + status = DOWNLOAD_STATUS::QUEUED; + mode = DOWNLOAD_MODE::AUDIO; + download_progress = 0; + queued_timestamp = 0; + + return; +} + JsonBlock DownloadEntry::GetAsJson() { JsonBlock jb; diff --git a/Tubio/DownloadManager.h b/Tubio/DownloadManager.h index 7011679..571e80b 100644 --- a/Tubio/DownloadManager.h +++ b/Tubio/DownloadManager.h @@ -27,6 +27,9 @@ namespace Downloader class DownloadEntry { public: + DownloadEntry(); + JasonPP::JsonBlock GetAsJson(); + std::string title; std::string description; std::string uploader; @@ -41,7 +44,6 @@ namespace Downloader int download_progress; time_t queued_timestamp; - JasonPP::JsonBlock GetAsJson(); }; diff --git a/Tubio/HttpServer.cpp b/Tubio/HttpServer.cpp index 94f9b9e..a72c575 100644 --- a/Tubio/HttpServer.cpp +++ b/Tubio/HttpServer.cpp @@ -68,7 +68,7 @@ void HttpServer::Update() void HttpServer::ServeStringToConnection(struct mg_connection* c, std::string str, int httpStatusCode) { mg_send_head(c, httpStatusCode, str.length(), "content-type: application/json\nAccess-Control-Allow-Origin: *"); - mg_printf(c, str.c_str()); + mg_printf(c, "%s", str.c_str()); return; } @@ -114,14 +114,14 @@ void HttpServer::EventHandler(mg_connection* pNc, int ev, void* p) catch (std::exception& e) { Json j; - j.CloneFrom(RestResponseTemplates::GetByCode(INTERNAL_SERVER_ERROR, e.what())); - ServeStringToConnection(pNc, j.Render(), INTERNAL_SERVER_ERROR); + j.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::INTERNAL_SERVER_ERROR, e.what())); + ServeStringToConnection(pNc, j.Render(), (int)HTTP_STATUS_CODE::INTERNAL_SERVER_ERROR); } catch (...) { Json j; - j.CloneFrom(RestResponseTemplates::GetByCode(INTERNAL_SERVER_ERROR, "Das not good")); - ServeStringToConnection(pNc, j.Render(), INTERNAL_SERVER_ERROR); + j.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::INTERNAL_SERVER_ERROR, "Das not good")); + ServeStringToConnection(pNc, j.Render(), (int)HTTP_STATUS_CODE::INTERNAL_SERVER_ERROR); } break; @@ -129,8 +129,8 @@ void HttpServer::EventHandler(mg_connection* pNc, int ev, void* p) else // Client is not allowed, serve error json { Json j; - j.CloneFrom(RestResponseTemplates::GetByCode(UNAUTHORIZED, denialReason)); - ServeStringToConnection(pNc, j.Render(), UNAUTHORIZED); + j.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::UNAUTHORIZED, denialReason)); + ServeStringToConnection(pNc, j.Render(), (int)HTTP_STATUS_CODE::UNAUTHORIZED); } } @@ -158,13 +158,13 @@ void HttpServer::ProcessAPIRequest(mg_connection* pNc, int ev, void* p, std::str RestQueryHandler::ProcessQuery(peerAddress, requestBody, responseBody, returnCode); Json response(responseBody); - ServeStringToConnection(pNc, response.Render(), returnCode); + ServeStringToConnection(pNc, response.Render(), (int)returnCode); } else // return error message for invalid json { Json errorJson; errorJson.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST, "Received json is fucked")); - ServeStringToConnection(pNc, errorJson.Render(), HTTP_STATUS_CODE::BAD_REQUEST); + ServeStringToConnection(pNc, errorJson.Render(), (int)HTTP_STATUS_CODE::BAD_REQUEST); } return; @@ -189,15 +189,15 @@ void HttpServer::ServeDownloadeableResource(mg_connection* pNc, int ev, void* p, else { Json j; - j.CloneFrom(RestResponseTemplates::GetByCode(BAD_REQUEST, "File download not ready!")); - ServeStringToConnection(pNc, j.Render(), BAD_REQUEST); + j.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST, "File download not ready!")); + ServeStringToConnection(pNc, j.Render(), (int)HTTP_STATUS_CODE::BAD_REQUEST); } } else { Json j; - j.CloneFrom(RestResponseTemplates::GetByCode(BAD_REQUEST, "Invalid tubio id!")); - ServeStringToConnection(pNc, j.Render(), BAD_REQUEST); + j.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST, "Invalid tubio id!")); + ServeStringToConnection(pNc, j.Render(), (int)HTTP_STATUS_CODE::BAD_REQUEST); } return; diff --git a/Tubio/Idler.cpp b/Tubio/Idler.cpp index 4201057..b7ec245 100644 --- a/Tubio/Idler.cpp +++ b/Tubio/Idler.cpp @@ -11,7 +11,7 @@ void Idler::Update() // Let the processor chill for a second. // This should reduce the idling-cpu load to near 0% #ifdef _WIN - Sleep(SLEEP_TIME * 1e3); // Uses milliseconds + Sleep((DWORD)(SLEEP_TIME * 1e3)); // Uses milliseconds #else usleep(SLEEP_TIME * 1e6); // Uses microseconds #endif diff --git a/Tubio/RestQueryHandler.cpp b/Tubio/RestQueryHandler.cpp index 5ce03d4..3f24b77 100644 --- a/Tubio/RestQueryHandler.cpp +++ b/Tubio/RestQueryHandler.cpp @@ -20,7 +20,7 @@ bool RestQueryHandler::ProcessQuery(const std::string clientAdress, const Json& if (!ValidateField("request", JDType::STRING, request, responseBody)) { - responseCode = BAD_REQUEST; + responseCode = HTTP_STATUS_CODE::BAD_REQUEST; return false; } JsonBlock requestBody = request.AsJson; @@ -49,8 +49,8 @@ bool RestQueryHandler::ProcessQuery(const std::string clientAdress, const Json& - responseBody.CloneFrom(RestResponseTemplates::GetByCode(NOT_FOUND, "The requested request was not found.")); - responseCode = NOT_FOUND; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::NOT_FOUND, "The requested request was not found.")); + responseCode = HTTP_STATUS_CODE::NOT_FOUND; return false; } @@ -64,8 +64,8 @@ void RestQueryHandler::PostExit() bool RestQueryHandler::Example_Foo(const JsonBlock& request, JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = "Bar!"; std::cout << "Bar!" << std::endl; return true; @@ -76,7 +76,7 @@ bool RestQueryHandler::QueueDownload(const JsonBlock& request, JsonBlock& respon if ((!ValidateField("video_url", JDType::STRING, request, responseBody)) || (!ValidateField("mode", JDType::STRING, request, responseBody))) { - responseCode = BAD_REQUEST; + responseCode = HTTP_STATUS_CODE::BAD_REQUEST; return false; } @@ -87,8 +87,8 @@ bool RestQueryHandler::QueueDownload(const JsonBlock& request, JsonBlock& respon else if (modeParam == "audio") mode = DOWNLOAD_MODE::AUDIO; else { - responseCode = BAD_REQUEST; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(BAD_REQUEST, "Parameter 'mode' is of wrong value. Should be either 'video' or 'audio'.")); + responseCode = HTTP_STATUS_CODE::BAD_REQUEST; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST, "Parameter 'mode' is of wrong value. Should be either 'video' or 'audio'.")); return false; } @@ -97,8 +97,8 @@ bool RestQueryHandler::QueueDownload(const JsonBlock& request, JsonBlock& respon std::string tubId = DownloadManager::QueueDownload(videoUrl, mode); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = "Download queued!"; responseBody.Set("queue_position") = (long long int)DownloadManager::GetQueueLength(); responseBody.Set("tubio_id") = tubId; @@ -135,8 +135,8 @@ bool RestQueryHandler::FetchSessionCache(const JsonBlock& request, JsonBlock& re max_num = request["max_num"].AsInt; } - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); JsonArray cache = DownloadManager::GetAlltimeCacheAsJson(max_age, max_num); responseBody.Set("cache_size") = (long long int)cache.Size(); responseBody.Set("cache") = cache; @@ -148,8 +148,8 @@ bool RestQueryHandler::FetchAlltimeCache(const JsonBlock& request, JsonBlock& re //log->cout << "Asking for whole cache..."; //log->Flush(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); JsonArray cache = DownloadManager::GetAlltimeCacheAsJson(-1, -1); // Get ALL the data responseBody.Set("cache_size") = (long long int)cache.Size(); responseBody.Set("cache") = cache; @@ -164,8 +164,8 @@ bool RestQueryHandler::ClearDownloadCache(const JsonBlock& request, JsonBlock& r bool wait = !DownloadManager::ClearDownloadCache(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); if (wait) { @@ -187,8 +187,8 @@ bool RestQueryHandler::KillYourself(const JsonBlock& request, JsonBlock& respons log->cout << "Shutting down server upon client request..."; log->Flush(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = "Goodbye! :3"; return true; } @@ -201,15 +201,15 @@ bool RestQueryHandler::HideConsole(const JsonBlock& request, JsonBlock& response log->Flush(); bool didAnythingChange = ConsoleManager::HideConsole(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = (didAnythingChange) ? "Console is now hidden!" : "Console was already hidden!"; return true; } else { - responseCode = NOT_IMPLEMENTED; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(NOT_IMPLEMENTED)); + responseCode = HTTP_STATUS_CODE::NOT_IMPLEMENTED; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::NOT_IMPLEMENTED)); responseBody.Set("message") = "This feature is currently only supported on Windows! Make sure to compile with preprocessor directive _WIN!"; return false; } @@ -223,15 +223,15 @@ bool RestQueryHandler::ShowConsole(const JsonBlock& request, JsonBlock& response log->Flush(); bool didAnythingChange = ConsoleManager::ShowConsole(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = (didAnythingChange) ? "Console is now shown!" : "Console was already shown!"; return true; } else { - responseCode = NOT_IMPLEMENTED; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(NOT_IMPLEMENTED)); + responseCode = HTTP_STATUS_CODE::NOT_IMPLEMENTED; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::NOT_IMPLEMENTED)); responseBody.Set("message") = "This feature is currently only supported on Windows! Make sure to compile with preprocessor directive _WIN!"; return false; } @@ -254,8 +254,8 @@ bool RestQueryHandler::GetOSName(const JsonBlock& request, JsonBlock& responseBo #elif __unix || __unix__ osName = "Unix"; #endif - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("os_name") = osName; return true; } @@ -265,8 +265,8 @@ bool RestQueryHandler::FetchSessionLogs(const JsonBlock& request, JsonBlock& res //log->cout << "Fetching session logs..."; //log->Flush(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); JsonArray logs = LogHistory::GetCompleteLogHistoryAsJson(time(0) - XGControl::boot_time + 1, -1); responseBody.Set("logs_size") = (long long int)logs.Size(); responseBody.Set("logs") = logs; @@ -291,8 +291,8 @@ bool RestQueryHandler::FetchAlltimeLogs(const JsonBlock& request, JsonBlock& res max_num = request["max_num"].AsInt; } - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); JsonArray logs = LogHistory::GetCompleteLogHistoryAsJson(max_age, max_num); responseBody.Set("logs_size") = (long long int)logs.Size(); responseBody.Set("logs") = logs; @@ -304,8 +304,8 @@ bool RestQueryHandler::GetDiskUsage(const JsonBlock& request, JsonBlock& respons log->cout << "Fetching disk usage..."; log->Flush(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); JsonBlock diskUsages; @@ -363,8 +363,8 @@ bool RestQueryHandler::GetDiskUsage(const JsonBlock& request, JsonBlock& respons bool RestQueryHandler::ClearLogs(const JsonBlock& request, JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = "The logs have been cleared."; LogHistory::ClearLogHistory(); @@ -385,8 +385,8 @@ bool RestQueryHandler::UpdateYoutubeDL(const JsonBlock& request, JsonBlock& resp log->cout << " => OK!"; log->Flush(); - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = "Updated youtube-dl.exe successfully!"; } else if (result == "not implemented") @@ -395,8 +395,8 @@ bool RestQueryHandler::UpdateYoutubeDL(const JsonBlock& request, JsonBlock& resp log->Flush(); log->Flush(); - responseCode = NOT_IMPLEMENTED; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(NOT_IMPLEMENTED)); + responseCode = HTTP_STATUS_CODE::NOT_IMPLEMENTED; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::NOT_IMPLEMENTED)); responseBody.Set("message") = "On linux you have to update youtube-dl yourself since it is a system-wide package handled by various package managers!"; } else // Some other error @@ -404,8 +404,8 @@ bool RestQueryHandler::UpdateYoutubeDL(const JsonBlock& request, JsonBlock& resp log->cout << " => urlmon error: " << result; log->Flush(); - responseCode = INTERNAL_SERVER_ERROR; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(INTERNAL_SERVER_ERROR)); + responseCode = HTTP_STATUS_CODE::INTERNAL_SERVER_ERROR; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::INTERNAL_SERVER_ERROR)); responseBody.Set("message") = "Unable do update youtube-dl.exe! See urlmon " + result; } @@ -416,7 +416,7 @@ bool RestQueryHandler::RemoveDownloadEntry(const JsonBlock& request, JsonBlock& { if (!ValidateField("id", JDType::STRING, request, responseBody)) { - responseCode = BAD_REQUEST; + responseCode = HTTP_STATUS_CODE::BAD_REQUEST; return false; } @@ -427,14 +427,14 @@ bool RestQueryHandler::RemoveDownloadEntry(const JsonBlock& request, JsonBlock& if (didSucceed) { - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = "Successfully removed."; } else { - responseCode = BAD_REQUEST; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(BAD_REQUEST)); + responseCode = HTTP_STATUS_CODE::BAD_REQUEST; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST)); responseBody.Set("message") = "Failed."; } @@ -443,8 +443,8 @@ bool RestQueryHandler::RemoveDownloadEntry(const JsonBlock& request, JsonBlock& bool RestQueryHandler::UpdateConfig(const JsonBlock& request, JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); JsonBlock dummy; if (ValidateField("config", JDType::JSON, request, dummy)) @@ -489,8 +489,8 @@ bool RestQueryHandler::ResetConfigDefaults(const JsonBlock& request, JsonBlock& else ConsoleManager::HideConsole(); } - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("message") = "Reset config to default..."; responseBody.Set("config") = XGConfig::GetSavefileBuffer(); return true; @@ -498,8 +498,8 @@ bool RestQueryHandler::ResetConfigDefaults(const JsonBlock& request, JsonBlock& bool Rest::RestQueryHandler::GetServerVersion(const JasonPP::JsonBlock& request, JasonPP::JsonBlock& responseBody, HTTP_STATUS_CODE& responseCode) { - responseCode = OK; - responseBody.CloneFrom(RestResponseTemplates::GetByCode(OK)); + responseCode = HTTP_STATUS_CODE::OK; + responseBody.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::OK)); responseBody.Set("server_version").SetFloatData(TUBIO_SERVER_VERSION); return true; } @@ -516,7 +516,7 @@ bool RestQueryHandler::ValidateField(const std::string name, const JasonPP::JDTy { if (checkThat.GetDataType() != JDType::JSON) { - putErrorResponseHere = RestResponseTemplates::GetByCode(BAD_REQUEST, "The request body must be a json struct! No json array or similar..."); + putErrorResponseHere = RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST, "The request body must be a json struct! No json array or similar..."); return false; } @@ -538,12 +538,12 @@ bool RestQueryHandler::ValidateField(const std::string name, const JasonPP::JDTy ss << "Mandatory value \"" << name << "\" is of wrong type (" << JsonDataType2String(cached.GetDataType()) << ")" << std::endl; ss << "Should be of type " << JsonDataType2String(type) << "! (Integers can be casted to floats)"; - putErrorResponseHere.CloneFrom(RestResponseTemplates::GetByCode(BAD_REQUEST, ss.str())); + putErrorResponseHere.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST, ss.str())); } } else { - putErrorResponseHere.CloneFrom(RestResponseTemplates::GetByCode(BAD_REQUEST, std::string("Missing mandatory value '" + name + "'"))); + putErrorResponseHere.CloneFrom(RestResponseTemplates::GetByCode(HTTP_STATUS_CODE::BAD_REQUEST, std::string("Missing mandatory value '" + name + "'"))); return false; } diff --git a/Tubio/RestResponseTemplates.h b/Tubio/RestResponseTemplates.h index f94743c..e6923a1 100644 --- a/Tubio/RestResponseTemplates.h +++ b/Tubio/RestResponseTemplates.h @@ -3,7 +3,7 @@ namespace Rest { - enum HTTP_STATUS_CODE { + enum class HTTP_STATUS_CODE { OK = 200, BAD_REQUEST = 400, UNAUTHORIZED = 401, diff --git a/Tubio/Tubio.vcxproj b/Tubio/Tubio.vcxproj index a392869..c3c0b3d 100644 --- a/Tubio/Tubio.vcxproj +++ b/Tubio/Tubio.vcxproj @@ -149,7 +149,12 @@ - + + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + diff --git a/Tubio/Version.h b/Tubio/Version.h index 82a8882..383fc96 100644 --- a/Tubio/Version.h +++ b/Tubio/Version.h @@ -1,2 +1,2 @@ #pragma once -#define TUBIO_SERVER_VERSION (0.5) +#define TUBIO_SERVER_VERSION (0.51) diff --git a/Tubio/XGConfig.cpp b/Tubio/XGConfig.cpp index 7e75cf0..b97ffa5 100644 --- a/Tubio/XGConfig.cpp +++ b/Tubio/XGConfig.cpp @@ -74,7 +74,7 @@ void XGConfig::LoadFromJson(const JasonPP::JsonBlock& json) if (IsJsonFieldValid(json, "logging.autosave_interval", JDType::INT)) { - logging.autosave_interval = json.ShorthandGet("logging.autosave_interval").AsInt; + logging.autosave_interval = (uint32_t)json.ShorthandGet("logging.autosave_interval").AsInt; } @@ -86,7 +86,7 @@ void XGConfig::LoadFromJson(const JasonPP::JsonBlock& json) if (IsJsonFieldValid(json, "httpServer.polling_rate", JDType::INT)) { - httpServer.polling_rate = json.ShorthandGet("httpServer.polling_rate").AsInt; + httpServer.polling_rate = (uint32_t)json.ShorthandGet("httpServer.polling_rate").AsInt; } if (IsJsonFieldValid(json, "httpServer.rootdir", JDType::STRING)) @@ -102,7 +102,7 @@ void XGConfig::LoadFromJson(const JasonPP::JsonBlock& json) } if (IsJsonFieldValid(json, "downloader.num_threads", JDType::INT)) { - downloader.num_threads = json.ShorthandGet("downloader.num_threads").AsInt; + downloader.num_threads = (uint32_t)json.ShorthandGet("downloader.num_threads").AsInt; } if (IsJsonFieldValid(json, "downloader.max_dlrate_per_thread", JDType::STRING)) { diff --git a/Tubio/external_dependencies/casenta/mongoose/mongoose.c b/Tubio/external_dependencies/casenta/mongoose/mongoose.c index 93dd5fc..644c457 100644 --- a/Tubio/external_dependencies/casenta/mongoose/mongoose.c +++ b/Tubio/external_dependencies/casenta/mongoose/mongoose.c @@ -17,6 +17,13 @@ * license, as set out in . */ +#ifdef _WIN +#pragma warning disable warning-list // Not my (leonetienne) code, not my warnings +#else +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wall" +#endif + #include "mongoose.h" #ifdef MG_MODULE_LINES #line 1 "src/mg_internal.h" @@ -16131,3 +16138,7 @@ unsigned int sleep(unsigned int seconds) { } #endif /* _WIN32 */ + +#ifndef _WIN +#pragma GCC diagnostic pop +#endif \ No newline at end of file diff --git a/linux_build/build.sh b/linux_build/build.sh index 2bed5ba..a957f18 100644 --- a/linux_build/build.sh +++ b/linux_build/build.sh @@ -27,5 +27,5 @@ g++ \ \ -lpthread \ \ --w \ +-Wall \ -o ./tubio.out diff --git a/linux_build/tubio.out b/linux_build/tubio.out index cfbcd17..bde7533 100644 Binary files a/linux_build/tubio.out and b/linux_build/tubio.out differ