From 462ebe6fcfd134f9de0e7737e81d0efc2e191898 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sat, 15 Mar 2025 19:18:35 -0500 Subject: [PATCH] detect port availability --- repertory/repertory/src/ui/handlers.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/repertory/repertory/src/ui/handlers.cpp b/repertory/repertory/src/ui/handlers.cpp index d26beac4..410f3f7e 100644 --- a/repertory/repertory/src/ui/handlers.cpp +++ b/repertory/repertory/src/ui/handlers.cpp @@ -26,6 +26,7 @@ #include "rpc/common.hpp" #include "types/repertory.hpp" #include "ui/mgmt_app_config.hpp" +#include "utils/common.hpp" #include "utils/error_utils.hpp" #include "utils/file.hpp" #include "utils/path.hpp" @@ -144,6 +145,19 @@ handlers::handlers(mgmt_app_config *config, httplib::Server *server) build fails here #endif + std::uint16_t port{}; + if (not utils::get_next_available_port(config_->get_api_port(), port)) { + fmt::println("failed to detect if port is available|{}", + config_->get_api_port()); + return; + } + + if (port != config_->get_api_port()) { + fmt::println("failed to listen on port|{}|next available|{}", + config_->get_api_port(), port); + return; + } + server_->listen("127.0.0.1", config_->get_api_port()); this_server = nullptr; }