mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-08-09 02:07:04 +08:00
fix(app): correct port validation and remove redundant TOML helper
This commit is contained in:
@@ -27,14 +27,6 @@ std::optional<T> safe_get_value(const toml::table& table, std::string_view key,
|
|||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
template <typename U>
|
|
||||||
requires std::convertible_to<U, std::string>
|
|
||||||
std::optional<std::string> safe_get_value(const toml::table& table,
|
|
||||||
std::string_view key,
|
|
||||||
U&& default_value) {
|
|
||||||
return safe_get_value<std::string>(
|
|
||||||
table, key, std::string(std::forward<U>(default_value)));
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace TOML
|
} // namespace TOML
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ void App::handle_argument(int argc, char** argv) {
|
|||||||
auto r = std::from_chars(arg.data(), arg.data() + arg.size(),
|
auto r = std::from_chars(arg.data(), arg.data() + arg.size(),
|
||||||
m_argument.port);
|
m_argument.port);
|
||||||
|
|
||||||
if (r.ec != std::errc{} || arg.data() + arg.size()) {
|
if (r.ec != std::errc{} || r.ptr != arg.data() + arg.size()) {
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
std::format("Invalid port: {}", arg));
|
std::format("Invalid port: {}", arg));
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,8 @@ void App::handle_toml() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_argument.ip = *TOML::safe_get_value(server, "ip", "127.0.01");
|
m_argument.ip =
|
||||||
|
*TOML::safe_get_value(server, "ip", std::string("127.0.01"));
|
||||||
m_argument.port = *TOML::safe_get_value(server, "port", 25530);
|
m_argument.port = *TOML::safe_get_value(server, "port", 25530);
|
||||||
m_argument.is_client = *TOML::safe_get_value(server, "client", false);
|
m_argument.is_client = *TOML::safe_get_value(server, "client", false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user