v1.1.0-release (#1)
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 was merged in pull request #1.
This commit is contained in:
2025-04-13 11:49:16 -05:00
parent 18f5f47321
commit 1c115b2758
51 changed files with 161 additions and 86 deletions

View File

@@ -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)