diff --git a/repertory/librepertory/src/app_config.cpp b/repertory/librepertory/src/app_config.cpp index 157c5c93..e1e3514c 100644 --- a/repertory/librepertory/src/app_config.cpp +++ b/repertory/librepertory/src/app_config.cpp @@ -933,24 +933,26 @@ auto app_config::get_preferred_download_type() const -> download_type { auto app_config::get_provider_display_name(const provider_type &prov) -> std::string { static const std::array(provider_type::unknown)> + static_cast(provider_type::unknown+1U)> PROVIDER_DISPLAY_NAMES = { "Sia", "Remote", "S3", "Encrypt", + "Unknown", }; return PROVIDER_DISPLAY_NAMES.at(static_cast(prov)); } auto app_config::get_provider_name(const provider_type &prov) -> std::string { static const std::array(provider_type::unknown)> + static_cast(provider_type::unknown+1U)> PROVIDER_NAMES = { "sia", "remote", "s3", "encrypt", + "unknown", }; return PROVIDER_NAMES.at(static_cast(prov)); } diff --git a/repertory/repertory/include/cli/mount.hpp b/repertory/repertory/include/cli/mount.hpp index 24983cc9..f605d9bd 100644 --- a/repertory/repertory/include/cli/mount.hpp +++ b/repertory/repertory/include/cli/mount.hpp @@ -99,11 +99,18 @@ mount(std::vector args, std::string data_directory, auto drive_args = utils::cli::parse_drive_options(args, prov, data_directory); app_config config(prov, data_directory); { + lock_data global_lock(provider_type::unknown, "global"); + res = global_lock.grab_lock(); + if (res != lock_result::success) { + return exit_code::lock_failed; + } + std::uint16_t port{}; if (not utils::get_next_available_port(config.get_api_port(), port)) { std::cerr << "FATAL: Unable to get available port" << std::endl; return exit_code::startup_exception; } + global_lock.release(); config.set_api_port(port); }