summaryrefslogtreecommitdiff
path: root/src/net/download.h
AgeCommit message (Collapse)AuthorFilesLines
2025-04-02Use a consistent naming style for enum class valuesThorbjørn Lindeijer1-5/+5
Sometimes I've used CamelCase and sometimes SNAKE_CASE for these values. Since "enum class" values are always prefixed with the enum name, which uses CamelCase, I find it more fitting to use it for the values as well. Also fixes compilation on Windows where 'ERROR' was conflicting with a define.
2025-03-01Further Download related cleanupsThorbjørn Lindeijer1-32/+50
* Moved the memory buffer and mutex handling into the Download class to simplify the code updating the UI in ServerDialog and UpdaterWindow. * Replaced the "DownloadUpdate" callback function with simply polling Download::getState, since in the end polling was happening anyway. This changes also fixes handling of the Enter key while downloading updates, which no longer cancels the update process. Also, when pressing Escape while things are being downloaded, the first press cancels and only the second press goes back to login. Introduced a ThreadSafe template class, which wraps any type and makes it only accessible by calling lock(). This ensures the data is never accessed without locking the relevant mutex.
2025-02-26Cleanup Download code, fixing SDL_Thread leakingThorbjørn Lindeijer1-15/+16
The download thread was setting itself to nullptr (d->mThread = nullptr) in a number of locations. This caused a later call to SDL_WaitThread to be unable to perform cleanup. This reverts most of 1eb02f83a5d3895e4e18db30ea10d88da94ba4c0 (including making Download::cancel no longer blocking), but keeps the necessary waiting for the thread to finish before freeing the memory buffer in ~UpdaterWindow(), which might have been the bug fixed by that change. Fixed removal of downloaded .part file when its checksum failed. It trying to remove the file without .part appended instead. Fixed download progress indication in ServerDialog to not be reversed, though this is rarely visible due to the server list being so small. Fixed reporting of curl error.
2025-01-21Replaced include guards with #pragma onceThorbjørn Lindeijer1-4/+1
Thanks to https://github.com/cgmb/guardonce and a follow-up replace to remove duplicated newlines at end of file: find src -type f -name '*.h' -exec \ sed --in-place -e :a -e '/^\n*$/{$d;N;};/\n$/ba' {} \; Source: https://unix.stackexchange.com/questions/81685/how-to-remove-multiple-newlines-at-eof Fixes compile on macOS, which appears to have been due to the EVENT_H include guard.
2024-02-29Re-download updates when their checksum no longer matchesThorbjørn Lindeijer1-4/+7
The Mana World currently likes to just update its "TMW.zip" file, whereas updates were always given unique names in the past. With this change, the client checks the Adler32 checksum to know when it should re-download an update file. This matches the behavior of ManaPlus commit 96150f1aeacf55d311c41ffe12d9e754b1cda001.
2024-02-22General code cleanupsThorbjørn Lindeijer1-4/+4
* Use default member initializers * Use range-based loops * Don't use 'else' after 'return' * Removed some unused includes * Construct empty strings with std::string() instead of "" * Clear strings with .clear() instead of assigning "" * Check whether strings are empty with .empty() instead of comparing to "" * Removed redundant initializations
2024-02-02Fixed use of deprecated CURLOPT_PROGRESSFUNCTION optionThorbjørn Lindeijer1-2/+5
Closes #51
2024-01-26Apply C++11 fixitsThorbjørn Lindeijer1-5/+3
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2012-05-05Fixed compilation errors and warnings with GCC 4.7Thorbjørn Lindeijer1-0/+1
Also, since GCC 4.7 there is a binary compatibility issue when linking with a Guichan that was not compiled in C++11 mode. This commit also allows compiling with GCC 4.7 with C++11 mode turned off. Reviewed-by: Erik Schilling
2012-01-26Updated copyrights to 2012Thorbjørn Lindeijer1-1/+1
2011-06-05Removing unknown conversion type character 'l' in formatStefan Dombrowski1-1/+1
This is a problem with gcc 4.4.1. Reviewed-by: Bjorn, Jaxad0127
2011-06-03Replace SDL_types.h with cstdintJared Adams1-5/+3
This required moving to C++0x, so it does that too, and fixes a few errors with that. Reviewed-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
2010-02-21Do some more copyright header cleanupsJared Adams1-1/+0
Fix "(C) 2009-2009" to just "(C) 2009" Fix "(C) 2010 TMW" to "(C) 2010 Mana" Remove TMW compyright on (hopefully all) files added after 0.0.29.1
2010-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-07Updated Copyright year to 2010!Bertram1-1/+1
Also added the update copyright tool from the Wormux Team. ( And not forgetting credit's due. :P )
2010-01-12Standardize header orderJared Adams1-0/+1
Also remove some extra new lines and fix eAthena's PartyTab define guards.
2009-10-13Forgot the actual download classJared Adams1-0/+108