diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d3af6d3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +*.tgz filter=lfs diff=lfs merge=lfs -text +*.tar.gz filter=lfs diff=lfs merge=lfs -text +*.tar.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a9bff27 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +## v1.1.0-release + +### Changes from v1.0.0-release + +* Added labels to log entries +* Detect and remove stalled torrent import diff --git a/cmake/hashes.cmake b/cmake/hashes.cmake index 5bf6bc9..bb653b7 100644 --- a/cmake/hashes.cmake +++ b/cmake/hashes.cmake @@ -1,14 +1,14 @@ -set(BINUTILS_HASH b53606f443ac8f01d1d5fc9c39497f2af322d99e14cea5c0b4b124d630379365) -set(CPP_HTTPLIB_HASH c9b9e0524666e1cd088f0874c57c1ce7c0eaa8552f9f4e15c755d5201fc8c608) -set(CURL_HASH 6edc063d1ebaf9cf3b3b46e9fef2f3cd8932694989ecd43d005d6e828426d09f) -set(EXPAT_HASH 372b18f6527d162fa9658f1c74d22a37429b82d822f5a1e1fc7e00f6045a06a2) +set(BINUTILS_HASH ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237) +set(CPP_HTTPLIB_HASH 18064587e0cc6a0d5d56d619f4cbbcaba47aa5d84d86013abbd45d95c6653866) +set(CURL_HASH ccc5ba45d9f5320c70ffb24e5411b66ba55ea1f333bf78be0963ed90a9328699) +set(EXPAT_HASH 85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb) set(GCC_HASH 7d376d445f93126dc545e2c0086d0f647c3094aae081cdb78f42ce2bc25e7293) set(GTEST_HASH 78c676fc63881529bf97bf9d45948d905a66833fbfa5318ea2cd7478cb98f399) set(ICU_HASH a2c443404f00098e9e90acf29dc318e049d2dc78d9ae5f46efb261934a730ce2) -set(JSON_HASH 0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406) +set(JSON_HASH 4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187) set(MINGW_HASH cc41898aac4b6e8dd5cffd7331b9d9515b912df4420a3a612b5ea2955bbeed2f) -set(OPENSSL_HASH 002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3) +set(OPENSSL_HASH 344d0a79f1a9b08029b0744e2cc401a43f9c90acd1044d09a530b4885a8e9fc0) set(PKG_CONFIG_HASH 6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591) -set(ROCKSDB_HASH fdccab16133c9d927a183c2648bcea8d956fb41eb1df2aacaa73eb0b95e43724) -set(SPDLOG_HASH 25c843860f039a1600f232c6eb9e01e6627f7d030a2ae5e232bdd3c9205d26cc) +set(ROCKSDB_HASH 3fdc9ca996971c4c039959866382c4a3a6c8ade4abf888f3b2ff77153e07bf28) +set(SPDLOG_HASH 7a80896357f3e8e920e85e92633b14ba0f229c506e6f978578bdc35ba09e9a5d) set(ZLIB_HASH 17e88863f3600672ab49182f217281b6fc4d3c762bde361935e436a95214d05c) diff --git a/cmake/versions.cmake b/cmake/versions.cmake index ad1e331..b51ecaf 100644 --- a/cmake/versions.cmake +++ b/cmake/versions.cmake @@ -1,23 +1,23 @@ -set(BINUTILS_VERSION 2.43) -set(BOOST_MAJOR_VERSION 1) -set(BOOST_MINOR_VERSION 87) -set(BOOST_PATCH_VERSION 0) +set(BINUTILS_VERSION 2.44) set(BOOST2_MAJOR_VERSION 1) set(BOOST2_MINOR_VERSION 76) set(BOOST2_PATCH_VERSION 0) -set(CPP_HTTPLIB_VERSION 0.19.0) -set(CURL_VERSION 8.12.1) -set(CURL2_VERSION 8_12_1) -set(EXPAT_VERSION 2.6.4) -set(EXPAT2_VERSION 2_6_4) +set(BOOST_MAJOR_VERSION 1) +set(BOOST_MINOR_VERSION 88) +set(BOOST_PATCH_VERSION 0) +set(CPP_HTTPLIB_VERSION 0.20.0) +set(CURL2_VERSION 8_13_0) +set(CURL_VERSION 8.13.0) +set(EXPAT2_VERSION 2_7_1) +set(EXPAT_VERSION 2.7.1) set(GCC_VERSION 14.2.0) set(GTEST_VERSION 1.16.0) set(ICU_VERSION 76-1) -set(JSON_VERSION 3.11.3) +set(JSON_VERSION 3.12.0) set(MESA_VERSION 23.3.3) set(MINGW_VERSION 12.0.0) -set(OPENSSL_VERSION 3.4.1) +set(OPENSSL_VERSION 3.5.0) set(PKG_CONFIG_VERSION 0.29.2) -set(ROCKSDB_VERSION 9.10.0) -set(SPDLOG_VERSION 1.15.1) +set(ROCKSDB_VERSION 10.0.1) +set(SPDLOG_VERSION 1.15.2) set(ZLIB_VERSION 1.3.1) diff --git a/config.sh b/config.sh index 534a905..694e814 100644 --- a/config.sh +++ b/config.sh @@ -8,7 +8,7 @@ PROJECT_DESC="Utility to remove, block and search stalled downloads in lidarr, r PROJECT_URL="https://git.fifthgrid.com/public/monitarr" PROJECT_MAJOR_VERSION=1 -PROJECT_MINOR_VERSION=0 +PROJECT_MINOR_VERSION=1 PROJECT_REVISION_VERSION=0 PROJECT_RELEASE_NUM=0 PROJECT_RELEASE_ITER=release diff --git a/docker/aarch64/alpine b/docker/aarch64/alpine index 6b580f0..b6f62e9 100644 --- a/docker/aarch64/alpine +++ b/docker/aarch64/alpine @@ -31,6 +31,7 @@ RUN apk add \ gflags \ gflags-dev \ git \ + git-lfs \ icu-dev \ icu-libs \ icu-static \ diff --git a/docker/x86_64/alpine b/docker/x86_64/alpine index 3346e7b..ad24210 100644 --- a/docker/x86_64/alpine +++ b/docker/x86_64/alpine @@ -31,6 +31,7 @@ RUN apk add \ gflags \ gflags-dev \ git \ + git-lfs \ icu-dev \ icu-libs \ icu-static \ diff --git a/docker/x86_64/mingw64 b/docker/x86_64/mingw64 index 55183a3..09ef66a 100644 --- a/docker/x86_64/mingw64 +++ b/docker/x86_64/mingw64 @@ -18,6 +18,7 @@ RUN apk add \ gcc \ gettext \ git \ + git-lfs \ gmp \ gmp-dev \ gperf \ @@ -350,9 +351,9 @@ RUN cd /3rd_party/mingw64 && sha256sum -c ./expat-${MY_EXPAT_VERSION}.tar.gz.sha ARG FONTCONFIG_VERSION ENV MY_FONTCONFIG_VERSION=${FONTCONFIG_VERSION} -RUN if [ -f "/3rd_party/fontconfig-${MY_FONTCONFIG_VERSION}.tar.gz" ]; then \ - cd /3rd_party && sha256sum -c ./fontconfig-${MY_FONTCONFIG_VERSION}.tar.gz.sha256 && cd - \ - && tar xvzf /3rd_party/fontconfig-${MY_FONTCONFIG_VERSION}.tar.gz \ +RUN if [ -f "/3rd_party/fontconfig-${MY_FONTCONFIG_VERSION}.tar.xz" ]; then \ + cd /3rd_party && sha256sum -c ./fontconfig-${MY_FONTCONFIG_VERSION}.tar.xz.sha256 && cd - \ + && tar xvJf /3rd_party/fontconfig-${MY_FONTCONFIG_VERSION}.tar.xz \ && cd fontconfig-${MY_FONTCONFIG_VERSION} \ && meson setup \ --cross-file ${MY_TOOLCHAIN_FILE_MESON} \ diff --git a/monitarr/monitarr/src/list_cmd.cpp b/monitarr/monitarr/src/list_cmd.cpp index c47748f..8920ae8 100644 --- a/monitarr/monitarr/src/list_cmd.cpp +++ b/monitarr/monitarr/src/list_cmd.cpp @@ -40,7 +40,8 @@ auto list_cmd(int argc, char **argv, const app_config &cfg) -> int { const auto &server = cfg.server_list.at(utils::string::to_uint64(*idx)); utils::error::handle_info( - function_name, fmt::format("list queue|{}|{}", server.id, server.url)); + function_name, + fmt::format("list queue|sid|{}|url|{}", server.id, server.url)); return list_queue(server); } } // namespace monitarr diff --git a/monitarr/monitarr/src/run_cmd.cpp b/monitarr/monitarr/src/run_cmd.cpp index 0e4b168..abc78d4 100644 --- a/monitarr/monitarr/src/run_cmd.cpp +++ b/monitarr/monitarr/src/run_cmd.cpp @@ -40,8 +40,8 @@ monitarr::stop_type stop_requested{false}; void quit_handler(int sig) { MONITARR_USES_FUNCTION_NAME(); - monitarr::utils::error::handle_info(function_name, - fmt::format("stop requested|{}", sig)); + monitarr::utils::error::handle_info( + function_name, fmt::format("stop requested|signal|{}", sig)); stop_requested = true; monitarr::mutex_lock lock(mtx); @@ -53,8 +53,9 @@ namespace monitarr { static void check_server(const server_cfg &server, data_db &state_db) { MONITARR_USES_FUNCTION_NAME(); - utils::error::handle_info(function_name, fmt::format("checking server|{}|{}", - server.id, server.url)); + utils::error::handle_info( + function_name, + fmt::format("checking server|sid|{}|url|{}", server.id, server.url)); auto cli = create_client(server); @@ -69,15 +70,16 @@ static void check_server(const server_cfg &server, data_db &state_db) { if (not response) { utils::error::handle_error( function_name, - fmt::format("check server request failed|{}|{}|no response", + fmt::format("check server request failed|sid|{}|url|{}|no response", server.id, server.url)); break; } if (response->status != httplib::StatusCode::OK_200) { utils::error::handle_error( - function_name, fmt::format("check server request failed|{}|{}|{}", - server.id, server.url, response->status)); + function_name, + fmt::format("check server request failed|sid|{}|url|{}|status|{}", + server.id, server.url, response->status)); break; } @@ -101,23 +103,29 @@ static void check_server(const server_cfg &server, data_db &state_db) { auto movie_id = record.contains("movieId") ? record["movieId"].get() : std::uint64_t{0U}; + auto size = record.at("size").get(); auto size_left = record.at("sizeleft").get(); auto title = record.at("title").get(); - auto is_downloading = utils::string::contains( - record.at("status").get(), "downloading"); + auto is_downloading = + utils::string::contains(record.at("status").get(), + "downloading") || + size == 0U; auto data = state_db.get(download_id); const auto update_entry = [&download_id, &now, server_id = server.id, - &size_left, &state_db, &title, + &size, &size_left, &state_db, &title, url = server.url](auto last_size_left) { - if (size_left == 0U) { + if (size != 0U && size_left == 0U) { state_db.remove(download_id); return; } utils::error::handle_info( - function_name, fmt::format("updating {}|{}|{}|{}|{}", download_id, - title, now, size_left, last_size_left)); + function_name, + fmt::format( + "updating " + "id|{}|title|{}|now|{}|size|{}|size_left|{}|last_size_left|{}", + download_id, title, now, size, size_left, last_size_left)); state_db.set(data_entry{ download_id, now, @@ -129,10 +137,12 @@ static void check_server(const server_cfg &server, data_db &state_db) { if (std::chrono::nanoseconds(now - data->last_check) >= server.timeout) { utils::error::handle_info( - function_name, - fmt::format("processing timeout {}|{}|{}|{}|{}", download_id, - title, now, size_left, data->size_left)); - if (size_left == data->size_left) { + function_name, fmt::format("processing timeout " + "id|{}|title|{}|now|{}|size|{}|size_" + "left|{}|last_size_left|{}", + download_id, title, now, size, + size_left, data->size_left)); + if (size == 0U || size_left == data->size_left) { remove_stalled(download_id, title, episode_id, movie_id, server, &state_db); } else if (size_left == 0U || not is_downloading) { @@ -140,10 +150,10 @@ static void check_server(const server_cfg &server, data_db &state_db) { } else { update_entry(data->size_left); } - } else if (size_left == 0U || not is_downloading) { + } else if ((size != 0U && size_left == 0U) || not is_downloading) { state_db.remove(download_id); } - } else if (is_downloading && size_left > 0U) { + } else if (is_downloading && (size == 0U || size_left > 0U)) { update_entry(0U); } } @@ -168,15 +178,15 @@ static void cleanup_entries(const server_cfg &server, data_db &state_db) { } utils::error::handle_warn( - function_name, fmt::format("download not found|{}|{}|{}", server.id, - server.url, entry.download_id)); + function_name, fmt::format("download not found|sid|{}|url|{}|id|{}", + server.id, server.url, entry.download_id)); if (not is_not_found) { continue; } utils::error::handle_warn( - function_name, fmt::format("removing download|{}|{}|{}", server.id, - server.url, entry.download_id)); + function_name, fmt::format("removing download|sid|{}|url|{}|id|{}", + server.id, server.url, entry.download_id)); state_db.remove(entry.download_id); } } @@ -222,8 +232,8 @@ auto run_cmd(const app_config &cfg, std::string_view log_dir) -> int { } utils::error::handle_info( - function_name, - fmt::format("waiting for next check|{}", cfg.check_interval)); + function_name, fmt::format("waiting for next check|interval|{}", + cfg.check_interval)); notify.wait_for(lock, cfg.check_interval); } @@ -238,7 +248,7 @@ auto run_cmd(const app_config &cfg, std::string_view log_dir) -> int { } utils::error::handle_info(function_name, - fmt::format("exiting application|{}", ret)); + fmt::format("exiting application|ret|{}", ret)); return ret; } diff --git a/scripts/copy_mingw64_deps.sh b/scripts/copy_mingw64_deps.sh index b8bb231..51cf341 100755 --- a/scripts/copy_mingw64_deps.sh +++ b/scripts/copy_mingw64_deps.sh @@ -15,6 +15,7 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_STATIC_LINK}" == "OFF" ]; th /mingw64/bin/libstdc++-6.dll /mingw64/bin/libwinpthread-1.dll /mingw64/bin/libzlib1.dll + /mingw64/bin/libzstd.dll /mingw64/bin/zlib1.dll ) diff --git a/scripts/versions.sh b/scripts/versions.sh index 203a0b2..2b86fdb 100755 --- a/scripts/versions.sh +++ b/scripts/versions.sh @@ -1,27 +1,27 @@ #!/bin/bash declare -A PROJECT_VERSIONS -PROJECT_VERSIONS[BINUTILS]="2.43" +PROJECT_VERSIONS[BINUTILS]="2.44" PROJECT_VERSIONS[BOOST2_MAJOR]="1" PROJECT_VERSIONS[BOOST2_MINOR]="76" PROJECT_VERSIONS[BOOST2_PATCH]="0" PROJECT_VERSIONS[BOOST_MAJOR]="1" -PROJECT_VERSIONS[BOOST_MINOR]="87" +PROJECT_VERSIONS[BOOST_MINOR]="88" PROJECT_VERSIONS[BOOST_PATCH]="0" -PROJECT_VERSIONS[CPP_HTTPLIB]="0.19.0" -PROJECT_VERSIONS[CURL]="8.12.1" -PROJECT_VERSIONS[CURL2]="8_12_1" -PROJECT_VERSIONS[EXPAT]="2.6.4" -PROJECT_VERSIONS[EXPAT2]="2_6_4" +PROJECT_VERSIONS[CPP_HTTPLIB]="0.20.0" +PROJECT_VERSIONS[CURL]="8.13.0" +PROJECT_VERSIONS[CURL2]="8_13_0" +PROJECT_VERSIONS[EXPAT]="2.7.1" +PROJECT_VERSIONS[EXPAT2]="2_7_1" PROJECT_VERSIONS[GCC]="14.2.0" PROJECT_VERSIONS[GTEST]="1.16.0" PROJECT_VERSIONS[ICU]="76-1" -PROJECT_VERSIONS[JSON]="3.11.3" +PROJECT_VERSIONS[JSON]="3.12.0" PROJECT_VERSIONS[MESA]="23.3.3" PROJECT_VERSIONS[MINGW]="12.0.0" -PROJECT_VERSIONS[OPENSSL]="3.4.1" +PROJECT_VERSIONS[OPENSSL]="3.5.0" PROJECT_VERSIONS[PKG_CONFIG]="0.29.2" -PROJECT_VERSIONS[ROCKSDB]="9.10.0" -PROJECT_VERSIONS[SPDLOG]="1.15.1" +PROJECT_VERSIONS[ROCKSDB]="10.0.1" +PROJECT_VERSIONS[SPDLOG]="1.15.2" PROJECT_VERSIONS[ZLIB]="1.3.1" export PROJECT_VERSIONS diff --git a/support/3rd_party/cpp-httplib-0.19.0.tar.gz b/support/3rd_party/cpp-httplib-0.19.0.tar.gz deleted file mode 100644 index ec296a2..0000000 Binary files a/support/3rd_party/cpp-httplib-0.19.0.tar.gz and /dev/null differ diff --git a/support/3rd_party/cpp-httplib-0.19.0.tar.gz.sha256 b/support/3rd_party/cpp-httplib-0.19.0.tar.gz.sha256 deleted file mode 100644 index 9e4e54e..0000000 --- a/support/3rd_party/cpp-httplib-0.19.0.tar.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -c9b9e0524666e1cd088f0874c57c1ce7c0eaa8552f9f4e15c755d5201fc8c608 *cpp-httplib-0.19.0.tar.gz diff --git a/support/3rd_party/cpp-httplib-0.20.0.tar.gz b/support/3rd_party/cpp-httplib-0.20.0.tar.gz new file mode 100644 index 0000000..6924516 --- /dev/null +++ b/support/3rd_party/cpp-httplib-0.20.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18064587e0cc6a0d5d56d619f4cbbcaba47aa5d84d86013abbd45d95c6653866 +size 1408009 diff --git a/support/3rd_party/cpp-httplib-0.20.0.tar.gz.sha256 b/support/3rd_party/cpp-httplib-0.20.0.tar.gz.sha256 new file mode 100644 index 0000000..24c0c77 --- /dev/null +++ b/support/3rd_party/cpp-httplib-0.20.0.tar.gz.sha256 @@ -0,0 +1 @@ +18064587e0cc6a0d5d56d619f4cbbcaba47aa5d84d86013abbd45d95c6653866 cpp-httplib-0.20.0.tar.gz diff --git a/support/3rd_party/curl-8.12.1.tar.gz b/support/3rd_party/curl-8.12.1.tar.gz deleted file mode 100644 index ce8921e..0000000 Binary files a/support/3rd_party/curl-8.12.1.tar.gz and /dev/null differ diff --git a/support/3rd_party/curl-8.12.1.tar.gz.sha256 b/support/3rd_party/curl-8.12.1.tar.gz.sha256 deleted file mode 100644 index 5c8be96..0000000 --- a/support/3rd_party/curl-8.12.1.tar.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -6edc063d1ebaf9cf3b3b46e9fef2f3cd8932694989ecd43d005d6e828426d09f *curl-8.12.1.tar.gz diff --git a/support/3rd_party/curl-8.13.0.tar.gz b/support/3rd_party/curl-8.13.0.tar.gz new file mode 100644 index 0000000..f9ba5d8 --- /dev/null +++ b/support/3rd_party/curl-8.13.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccc5ba45d9f5320c70ffb24e5411b66ba55ea1f333bf78be0963ed90a9328699 +size 3459791 diff --git a/support/3rd_party/curl-8.13.0.tar.gz.sha256 b/support/3rd_party/curl-8.13.0.tar.gz.sha256 new file mode 100644 index 0000000..2483575 --- /dev/null +++ b/support/3rd_party/curl-8.13.0.tar.gz.sha256 @@ -0,0 +1 @@ +ccc5ba45d9f5320c70ffb24e5411b66ba55ea1f333bf78be0963ed90a9328699 curl-8.13.0.tar.gz diff --git a/support/3rd_party/googletest-1.15.2.tar.gz b/support/3rd_party/googletest-1.15.2.tar.gz index fd66554..76dc453 100644 Binary files a/support/3rd_party/googletest-1.15.2.tar.gz and b/support/3rd_party/googletest-1.15.2.tar.gz differ diff --git a/support/3rd_party/googletest-1.16.0.tar.gz b/support/3rd_party/googletest-1.16.0.tar.gz index 932b4b5..0dbd976 100644 Binary files a/support/3rd_party/googletest-1.16.0.tar.gz and b/support/3rd_party/googletest-1.16.0.tar.gz differ diff --git a/support/3rd_party/json-3.11.3.tar.gz b/support/3rd_party/json-3.11.3.tar.gz deleted file mode 100644 index c66a790..0000000 Binary files a/support/3rd_party/json-3.11.3.tar.gz and /dev/null differ diff --git a/support/3rd_party/json-3.11.3.tar.gz.sha256 b/support/3rd_party/json-3.11.3.tar.gz.sha256 deleted file mode 100644 index bff77da..0000000 --- a/support/3rd_party/json-3.11.3.tar.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406 json-3.11.3.tar.gz diff --git a/support/3rd_party/json-3.12.0.tar.gz b/support/3rd_party/json-3.12.0.tar.gz new file mode 100644 index 0000000..a45946b --- /dev/null +++ b/support/3rd_party/json-3.12.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187 +size 9678593 diff --git a/support/3rd_party/json-3.12.0.tar.gz.sha256 b/support/3rd_party/json-3.12.0.tar.gz.sha256 new file mode 100644 index 0000000..2ed5de7 --- /dev/null +++ b/support/3rd_party/json-3.12.0.tar.gz.sha256 @@ -0,0 +1 @@ +4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187 json-3.12.0.tar.gz diff --git a/support/3rd_party/mingw64/binutils-2.43.tar.xz b/support/3rd_party/mingw64/binutils-2.43.tar.xz deleted file mode 100644 index 42f8fd3..0000000 Binary files a/support/3rd_party/mingw64/binutils-2.43.tar.xz and /dev/null differ diff --git a/support/3rd_party/mingw64/binutils-2.43.tar.xz.sha256 b/support/3rd_party/mingw64/binutils-2.43.tar.xz.sha256 deleted file mode 100644 index b432576..0000000 --- a/support/3rd_party/mingw64/binutils-2.43.tar.xz.sha256 +++ /dev/null @@ -1 +0,0 @@ -b53606f443ac8f01d1d5fc9c39497f2af322d99e14cea5c0b4b124d630379365 binutils-2.43.tar.xz diff --git a/support/3rd_party/mingw64/binutils-2.44.tar.xz b/support/3rd_party/mingw64/binutils-2.44.tar.xz new file mode 100644 index 0000000..d94da78 --- /dev/null +++ b/support/3rd_party/mingw64/binutils-2.44.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +size 27285788 diff --git a/support/3rd_party/mingw64/binutils-2.44.tar.xz.sha256 b/support/3rd_party/mingw64/binutils-2.44.tar.xz.sha256 new file mode 100644 index 0000000..55a2e69 --- /dev/null +++ b/support/3rd_party/mingw64/binutils-2.44.tar.xz.sha256 @@ -0,0 +1 @@ +ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 binutils-2.44.tar.xz diff --git a/support/3rd_party/mingw64/expat-2.6.4.tar.gz b/support/3rd_party/mingw64/expat-2.6.4.tar.gz deleted file mode 100644 index b11f36a..0000000 Binary files a/support/3rd_party/mingw64/expat-2.6.4.tar.gz and /dev/null differ diff --git a/support/3rd_party/mingw64/expat-2.6.4.tar.gz.sha256 b/support/3rd_party/mingw64/expat-2.6.4.tar.gz.sha256 deleted file mode 100644 index a2dda8f..0000000 --- a/support/3rd_party/mingw64/expat-2.6.4.tar.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -372b18f6527d162fa9658f1c74d22a37429b82d822f5a1e1fc7e00f6045a06a2 *expat-2.6.4.tar.gz diff --git a/support/3rd_party/mingw64/expat-2.7.1.tar.gz b/support/3rd_party/mingw64/expat-2.7.1.tar.gz new file mode 100644 index 0000000..f3d1951 --- /dev/null +++ b/support/3rd_party/mingw64/expat-2.7.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb +size 8433717 diff --git a/support/3rd_party/mingw64/expat-2.7.1.tar.gz.sha256 b/support/3rd_party/mingw64/expat-2.7.1.tar.gz.sha256 new file mode 100644 index 0000000..0562cb9 --- /dev/null +++ b/support/3rd_party/mingw64/expat-2.7.1.tar.gz.sha256 @@ -0,0 +1 @@ +85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb expat-2.7.1.tar.gz diff --git a/support/3rd_party/mingw64/gcc-14.2.0.tar.gz b/support/3rd_party/mingw64/gcc-14.2.0.tar.gz index e5c2a90..1aaca06 100644 Binary files a/support/3rd_party/mingw64/gcc-14.2.0.tar.gz and b/support/3rd_party/mingw64/gcc-14.2.0.tar.gz differ diff --git a/support/3rd_party/mingw64/icu-release-76-1.tar.gz b/support/3rd_party/mingw64/icu-release-76-1.tar.gz index b22aff5..5a1dcea 100644 Binary files a/support/3rd_party/mingw64/icu-release-76-1.tar.gz and b/support/3rd_party/mingw64/icu-release-76-1.tar.gz differ diff --git a/support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz b/support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz index a82b28f..83cf6bb 100644 Binary files a/support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz and b/support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz differ diff --git a/support/3rd_party/mingw64/zlib-1.3.1.tar.gz b/support/3rd_party/mingw64/zlib-1.3.1.tar.gz index 9c29e94..fb9239b 100644 Binary files a/support/3rd_party/mingw64/zlib-1.3.1.tar.gz and b/support/3rd_party/mingw64/zlib-1.3.1.tar.gz differ diff --git a/support/3rd_party/openssl-3.4.1.tar.gz b/support/3rd_party/openssl-3.4.1.tar.gz deleted file mode 100644 index a4ad916..0000000 Binary files a/support/3rd_party/openssl-3.4.1.tar.gz and /dev/null differ diff --git a/support/3rd_party/openssl-3.4.1.tar.gz.sha256 b/support/3rd_party/openssl-3.4.1.tar.gz.sha256 deleted file mode 100644 index 1516c99..0000000 --- a/support/3rd_party/openssl-3.4.1.tar.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3 *openssl-3.4.1.tar.gz diff --git a/support/3rd_party/openssl-3.5.0.tar.gz b/support/3rd_party/openssl-3.5.0.tar.gz new file mode 100644 index 0000000..4c4e544 --- /dev/null +++ b/support/3rd_party/openssl-3.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:344d0a79f1a9b08029b0744e2cc401a43f9c90acd1044d09a530b4885a8e9fc0 +size 53136912 diff --git a/support/3rd_party/openssl-3.5.0.tar.gz.sha256 b/support/3rd_party/openssl-3.5.0.tar.gz.sha256 new file mode 100644 index 0000000..8337e33 --- /dev/null +++ b/support/3rd_party/openssl-3.5.0.tar.gz.sha256 @@ -0,0 +1 @@ +344d0a79f1a9b08029b0744e2cc401a43f9c90acd1044d09a530b4885a8e9fc0 openssl-3.5.0.tar.gz diff --git a/support/3rd_party/rocksdb-10.0.1.tar.gz b/support/3rd_party/rocksdb-10.0.1.tar.gz new file mode 100644 index 0000000..7b86c8b --- /dev/null +++ b/support/3rd_party/rocksdb-10.0.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fdc9ca996971c4c039959866382c4a3a6c8ade4abf888f3b2ff77153e07bf28 +size 13742853 diff --git a/support/3rd_party/rocksdb-10.0.1.tar.gz.sha256 b/support/3rd_party/rocksdb-10.0.1.tar.gz.sha256 new file mode 100644 index 0000000..241dda7 --- /dev/null +++ b/support/3rd_party/rocksdb-10.0.1.tar.gz.sha256 @@ -0,0 +1 @@ +3fdc9ca996971c4c039959866382c4a3a6c8ade4abf888f3b2ff77153e07bf28 rocksdb-10.0.1.tar.gz diff --git a/support/3rd_party/rocksdb-9.10.0.tar.gz b/support/3rd_party/rocksdb-9.10.0.tar.gz deleted file mode 100644 index e4d0748..0000000 Binary files a/support/3rd_party/rocksdb-9.10.0.tar.gz and /dev/null differ diff --git a/support/3rd_party/rocksdb-9.10.0.tar.gz.sha256 b/support/3rd_party/rocksdb-9.10.0.tar.gz.sha256 deleted file mode 100644 index d1b36f6..0000000 --- a/support/3rd_party/rocksdb-9.10.0.tar.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -fdccab16133c9d927a183c2648bcea8d956fb41eb1df2aacaa73eb0b95e43724 *rocksdb-9.10.0.tar.gz diff --git a/support/3rd_party/spdlog-1.15.1.tar.gz b/support/3rd_party/spdlog-1.15.1.tar.gz deleted file mode 100644 index 8ddc986..0000000 Binary files a/support/3rd_party/spdlog-1.15.1.tar.gz and /dev/null differ diff --git a/support/3rd_party/spdlog-1.15.1.tar.gz.sha256 b/support/3rd_party/spdlog-1.15.1.tar.gz.sha256 deleted file mode 100644 index 49f3d92..0000000 --- a/support/3rd_party/spdlog-1.15.1.tar.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -25c843860f039a1600f232c6eb9e01e6627f7d030a2ae5e232bdd3c9205d26cc *spdlog-1.15.1.tar.gz diff --git a/support/3rd_party/spdlog-1.15.2.tar.gz b/support/3rd_party/spdlog-1.15.2.tar.gz new file mode 100644 index 0000000..d7fb14f --- /dev/null +++ b/support/3rd_party/spdlog-1.15.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a80896357f3e8e920e85e92633b14ba0f229c506e6f978578bdc35ba09e9a5d +size 275744 diff --git a/support/3rd_party/spdlog-1.15.2.tar.gz.sha256 b/support/3rd_party/spdlog-1.15.2.tar.gz.sha256 new file mode 100644 index 0000000..892657e --- /dev/null +++ b/support/3rd_party/spdlog-1.15.2.tar.gz.sha256 @@ -0,0 +1 @@ +7a80896357f3e8e920e85e92633b14ba0f229c506e6f978578bdc35ba09e9a5d spdlog-1.15.2.tar.gz diff --git a/support/src/utils/common.cpp b/support/src/utils/common.cpp index ff9d5bd..c1d456d 100644 --- a/support/src/utils/common.cpp +++ b/support/src/utils/common.cpp @@ -25,8 +25,8 @@ #include "utils/string.hpp" namespace monitarr::utils { -auto compare_version_strings(std::string version1, - std::string version2) -> std::int32_t { +auto compare_version_strings(std::string version1, std::string version2) + -> std::int32_t { if (utils::string::contains(version1, "-")) { version1 = utils::string::split(version1, '-', true)[0U]; @@ -131,23 +131,47 @@ auto get_next_available_port(std::uint16_t first_port, using ip::tcp; boost::system::error_code error_code{}; - while (first_port != 0U) { - io_context ctx{}; - tcp::acceptor acceptor(ctx); - acceptor.open(tcp::v4(), error_code) || - acceptor.bind({tcp::v4(), first_port}, error_code); - if (not error_code) { - break; + + std::uint32_t check_port{first_port}; + while (check_port <= 65535U) { + { + io_context ctx{}; + tcp::socket socket(ctx); + socket.connect( + { + tcp::endpoint(ip::address_v4::loopback(), + static_cast(check_port)), + }, + error_code); + if (not error_code) { + ++check_port; + continue; + } } - ++first_port; + { + io_context ctx{}; + tcp::acceptor acceptor(ctx); + acceptor.open(tcp::v4(), error_code); + if (error_code) { + ++check_port; + continue; + } + + acceptor.set_option(boost::asio::ip::tcp::acceptor::linger(true, 0)); + acceptor.bind({tcp::v4(), static_cast(check_port)}, + error_code); + if (error_code) { + ++check_port; + continue; + } + } + + available_port = static_cast(check_port); + return true; } - if (not error_code) { - available_port = first_port; - } - - return not error_code; + return false; } #endif // defined(PROJECT_ENABLE_BOOST)