29#ifndef MADS_DOCTOR_CHECKS_HPP
30#define MADS_DOCTOR_CHECKS_HPP
93 const std::optional<CurveKeyCheck> &curve = std::nullopt);
132 std::optional<int> pinned_version,
163 std::chrono::milliseconds timeout);
175 std::chrono::milliseconds timeout);
191 std::optional<int64_t> configured);
CheckResult evaluate_fd_limit(bool supported, uint64_t soft, uint64_t hard, std::optional< int64_t > configured)
CheckResult check_settings_file(const std::filesystem::path &path)
Checks that path is a local settings file that exists and parses as valid TOML. A tcp://....
CheckResult evaluate_curve_handshake(const std::string &uri, CurveProbeResult result)
CheckResult check_port_available(const std::string &host, int port, std::chrono::milliseconds timeout)
CheckResult check_curve_keys(const CurveKeyCheck &cfg)
Checks that a client's CURVE key files exist and are well-formed: <client>.key (secret),...
bool is_well_formed_curve_key(const std::string &key_line)
CheckResult evaluate_port_available(const std::string &host, int port, bool in_use)
CheckResult check_fd_limit(std::optional< int64_t > configured)
constexpr int kMinSupportedPluginProtocol
CheckResult check_broker_reachable(const std::string &uri, std::chrono::milliseconds timeout, const std::optional< CurveKeyCheck > &curve=std::nullopt)
CheckResult evaluate_broker_reachable(const std::string &uri, bool reachable, bool crypto=false)
std::optional< int > parse_pinned_plugin_protocol(const std::string &manifest_json_text)
Reads the plugin_protocol field out of share/plugin_deps.json's text content (already read by the cal...
CheckResult check_curve_handshake(const std::string &uri, const CurveKeyCheck &cfg, std::chrono::milliseconds timeout)
CheckResult evaluate_plugin_protocol(int loaded_version, std::optional< int > pinned_version, int min_supported=kMinSupportedPluginProtocol)
CheckResult evaluate_plugin_load(const PluginLoadFacts &facts)
Client-side CURVE credentials for a probe socket: the same key_dir/client/server naming convention ev...