v1.1.0-release (#1)
All checks were successful
Public/monitarr/pipeline/head This commit looks good
All checks were successful
Public/monitarr/pipeline/head This commit looks good
## v1.1.0-release ### Changes from v1.0.0-release * Added labels to log entries * Detect and remove stalled torrent import
This commit is contained in:
parent
18f5f47321
commit
1c115b2758
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@ -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
|
8
CHANGELOG.md
Normal file
8
CHANGELOG.md
Normal file
@ -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
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -31,6 +31,7 @@ RUN apk add \
|
||||
gflags \
|
||||
gflags-dev \
|
||||
git \
|
||||
git-lfs \
|
||||
icu-dev \
|
||||
icu-libs \
|
||||
icu-static \
|
||||
|
@ -31,6 +31,7 @@ RUN apk add \
|
||||
gflags \
|
||||
gflags-dev \
|
||||
git \
|
||||
git-lfs \
|
||||
icu-dev \
|
||||
icu-libs \
|
||||
icu-static \
|
||||
|
@ -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} \
|
||||
|
@ -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
|
||||
|
@ -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>()
|
||||
: std::uint64_t{0U};
|
||||
auto size = record.at("size").get<std::uint64_t>();
|
||||
auto size_left = record.at("sizeleft").get<std::uint64_t>();
|
||||
auto title = record.at("title").get<std::string>();
|
||||
auto is_downloading = utils::string::contains(
|
||||
record.at("status").get<std::string>(), "downloading");
|
||||
auto is_downloading =
|
||||
utils::string::contains(record.at("status").get<std::string>(),
|
||||
"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;
|
||||
}
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
|
BIN
support/3rd_party/cpp-httplib-0.19.0.tar.gz
vendored
BIN
support/3rd_party/cpp-httplib-0.19.0.tar.gz
vendored
Binary file not shown.
@ -1 +0,0 @@
|
||||
c9b9e0524666e1cd088f0874c57c1ce7c0eaa8552f9f4e15c755d5201fc8c608 *cpp-httplib-0.19.0.tar.gz
|
BIN
support/3rd_party/cpp-httplib-0.20.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/cpp-httplib-0.20.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/cpp-httplib-0.20.0.tar.gz.sha256
vendored
Normal file
1
support/3rd_party/cpp-httplib-0.20.0.tar.gz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
18064587e0cc6a0d5d56d619f4cbbcaba47aa5d84d86013abbd45d95c6653866 cpp-httplib-0.20.0.tar.gz
|
BIN
support/3rd_party/curl-8.12.1.tar.gz
vendored
BIN
support/3rd_party/curl-8.12.1.tar.gz
vendored
Binary file not shown.
1
support/3rd_party/curl-8.12.1.tar.gz.sha256
vendored
1
support/3rd_party/curl-8.12.1.tar.gz.sha256
vendored
@ -1 +0,0 @@
|
||||
6edc063d1ebaf9cf3b3b46e9fef2f3cd8932694989ecd43d005d6e828426d09f *curl-8.12.1.tar.gz
|
BIN
support/3rd_party/curl-8.13.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/curl-8.13.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/curl-8.13.0.tar.gz.sha256
vendored
Normal file
1
support/3rd_party/curl-8.13.0.tar.gz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
ccc5ba45d9f5320c70ffb24e5411b66ba55ea1f333bf78be0963ed90a9328699 curl-8.13.0.tar.gz
|
BIN
support/3rd_party/googletest-1.15.2.tar.gz
vendored
BIN
support/3rd_party/googletest-1.15.2.tar.gz
vendored
Binary file not shown.
BIN
support/3rd_party/googletest-1.16.0.tar.gz
vendored
BIN
support/3rd_party/googletest-1.16.0.tar.gz
vendored
Binary file not shown.
BIN
support/3rd_party/json-3.11.3.tar.gz
vendored
BIN
support/3rd_party/json-3.11.3.tar.gz
vendored
Binary file not shown.
1
support/3rd_party/json-3.11.3.tar.gz.sha256
vendored
1
support/3rd_party/json-3.11.3.tar.gz.sha256
vendored
@ -1 +0,0 @@
|
||||
0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406 json-3.11.3.tar.gz
|
BIN
support/3rd_party/json-3.12.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/json-3.12.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/json-3.12.0.tar.gz.sha256
vendored
Normal file
1
support/3rd_party/json-3.12.0.tar.gz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187 json-3.12.0.tar.gz
|
BIN
support/3rd_party/mingw64/binutils-2.43.tar.xz
vendored
BIN
support/3rd_party/mingw64/binutils-2.43.tar.xz
vendored
Binary file not shown.
@ -1 +0,0 @@
|
||||
b53606f443ac8f01d1d5fc9c39497f2af322d99e14cea5c0b4b124d630379365 binutils-2.43.tar.xz
|
BIN
support/3rd_party/mingw64/binutils-2.44.tar.xz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/mingw64/binutils-2.44.tar.xz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/mingw64/binutils-2.44.tar.xz.sha256
vendored
Normal file
1
support/3rd_party/mingw64/binutils-2.44.tar.xz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 binutils-2.44.tar.xz
|
BIN
support/3rd_party/mingw64/expat-2.6.4.tar.gz
vendored
BIN
support/3rd_party/mingw64/expat-2.6.4.tar.gz
vendored
Binary file not shown.
@ -1 +0,0 @@
|
||||
372b18f6527d162fa9658f1c74d22a37429b82d822f5a1e1fc7e00f6045a06a2 *expat-2.6.4.tar.gz
|
BIN
support/3rd_party/mingw64/expat-2.7.1.tar.gz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/mingw64/expat-2.7.1.tar.gz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/mingw64/expat-2.7.1.tar.gz.sha256
vendored
Normal file
1
support/3rd_party/mingw64/expat-2.7.1.tar.gz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb expat-2.7.1.tar.gz
|
BIN
support/3rd_party/mingw64/gcc-14.2.0.tar.gz
vendored
BIN
support/3rd_party/mingw64/gcc-14.2.0.tar.gz
vendored
Binary file not shown.
BIN
support/3rd_party/mingw64/icu-release-76-1.tar.gz
vendored
BIN
support/3rd_party/mingw64/icu-release-76-1.tar.gz
vendored
Binary file not shown.
BIN
support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz
vendored
BIN
support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz
vendored
Binary file not shown.
BIN
support/3rd_party/mingw64/zlib-1.3.1.tar.gz
vendored
BIN
support/3rd_party/mingw64/zlib-1.3.1.tar.gz
vendored
Binary file not shown.
BIN
support/3rd_party/openssl-3.4.1.tar.gz
vendored
BIN
support/3rd_party/openssl-3.4.1.tar.gz
vendored
Binary file not shown.
@ -1 +0,0 @@
|
||||
002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3 *openssl-3.4.1.tar.gz
|
BIN
support/3rd_party/openssl-3.5.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/openssl-3.5.0.tar.gz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/openssl-3.5.0.tar.gz.sha256
vendored
Normal file
1
support/3rd_party/openssl-3.5.0.tar.gz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
344d0a79f1a9b08029b0744e2cc401a43f9c90acd1044d09a530b4885a8e9fc0 openssl-3.5.0.tar.gz
|
BIN
support/3rd_party/rocksdb-10.0.1.tar.gz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/rocksdb-10.0.1.tar.gz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/rocksdb-10.0.1.tar.gz.sha256
vendored
Normal file
1
support/3rd_party/rocksdb-10.0.1.tar.gz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
3fdc9ca996971c4c039959866382c4a3a6c8ade4abf888f3b2ff77153e07bf28 rocksdb-10.0.1.tar.gz
|
BIN
support/3rd_party/rocksdb-9.10.0.tar.gz
vendored
BIN
support/3rd_party/rocksdb-9.10.0.tar.gz
vendored
Binary file not shown.
@ -1 +0,0 @@
|
||||
fdccab16133c9d927a183c2648bcea8d956fb41eb1df2aacaa73eb0b95e43724 *rocksdb-9.10.0.tar.gz
|
BIN
support/3rd_party/spdlog-1.15.1.tar.gz
vendored
BIN
support/3rd_party/spdlog-1.15.1.tar.gz
vendored
Binary file not shown.
@ -1 +0,0 @@
|
||||
25c843860f039a1600f232c6eb9e01e6627f7d030a2ae5e232bdd3c9205d26cc *spdlog-1.15.1.tar.gz
|
BIN
support/3rd_party/spdlog-1.15.2.tar.gz
(Stored with Git LFS)
vendored
Normal file
BIN
support/3rd_party/spdlog-1.15.2.tar.gz
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
1
support/3rd_party/spdlog-1.15.2.tar.gz.sha256
vendored
Normal file
1
support/3rd_party/spdlog-1.15.2.tar.gz.sha256
vendored
Normal file
@ -0,0 +1 @@
|
||||
7a80896357f3e8e920e85e92633b14ba0f229c506e6f978578bdc35ba09e9a5d spdlog-1.15.2.tar.gz
|
@ -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<std::uint16_t>(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<std::uint16_t>(check_port)},
|
||||
error_code);
|
||||
if (error_code) {
|
||||
++check_port;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
available_port = static_cast<std::uint16_t>(check_port);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (not error_code) {
|
||||
available_port = first_port;
|
||||
}
|
||||
|
||||
return not error_code;
|
||||
return false;
|
||||
}
|
||||
#endif // defined(PROJECT_ENABLE_BOOST)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user