60 static constexpr auto PRIMARY_RPC_INTERFACE =
"primary_rpc_interface";
162 std::optional<ACME>
acme = std::nullopt;
175 max_open_sessions_soft,
176 max_open_sessions_hard,
182 forwarding_timeout_ms,
204 inline static std::pair<std::string, std::string> split_net_address(
207 auto [
host, port] = ccf::nonstd::rsplit_1(addr,
":");
208 return std::make_pair(std::string(
host), std::string(port));
212 const std::string&
host,
const std::string& port)
214 return fmt::format(
"{}:{}",
host, port);
224 std::tie(v1.nodehost, v1.nodeport) =
229 const auto& primary_interface = nin.
rpc_interfaces.begin()->second;
230 std::tie(v1.rpchost, v1.rpcport) =
231 split_net_address(primary_interface.bind_address);
232 std::tie(v1.pubhost, v1.pubport) =
233 split_net_address(primary_interface.published_address);
265 make_net_address(v1.nodehost, v1.nodeport);
268 primary_interface.
bind_address = make_net_address(v1.rpchost, v1.rpcport);
270 make_net_address(v1.pubhost, v1.pubport);
273 PRIMARY_RPC_INTERFACE, std::move(primary_interface));
278FMT_BEGIN_NAMESPACE
template <>
279struct formatter<
ccf::Authority>
281 template <
typename ParseContext>
282 constexpr auto parse(ParseContext& ctx)
287 template <
typename FormatContext>
289 ->
decltype(ctx.out())
295 return format_to(ctx.out(),
"Node");
299 return format_to(ctx.out(),
"Service");
303 return format_to(ctx.out(),
"ACME");
307 return format_to(ctx.out(),
"Unsecured");
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:712
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:661
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:688
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:784
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:835
Definition acme_client.h:30
Definition app_interface.h:15
RedirectionResolutionKind
Definition node_info_network.h:63
std::string ApplicationProtocol
Definition node_info_network.h:29
void from_json(const nlohmann::json &j, ClaimsDigest &hash)
Definition claims_digest.h:54
Authority
Definition node_info_network.h:16
void to_json(nlohmann::json &j, const ClaimsDigest &hash)
Definition claims_digest.h:49
Definition configuration.h:13
Definition node_info_network.h:32
Authority authority
Definition node_info_network.h:33
std::optional< std::string > acme_configuration
Definition node_info_network.h:35
bool operator==(const Endorsement &other) const
Definition node_info_network.h:37
Definition node_info_network.h:48
std::string pubport
Definition node_info_network.h:54
std::string nodehost
Definition node_info_network.h:51
std::string rpchost
Definition node_info_network.h:49
std::string rpcport
Definition node_info_network.h:53
std::string nodeport
Definition node_info_network.h:52
std::string pubhost
Definition node_info_network.h:50
ACME configuration description.
Definition node_info_network.h:154
std::map< std::string, ccf::ACMEClientConfig > configurations
Mapping of ACME client configuration names to configurations.
Definition node_info_network.h:156
bool operator==(const ACME &) const =default
Definition node_info_network.h:119
bool operator==(const Redirections &other) const =default
RedirectionResolverConfig to_primary
Definition node_info_network.h:120
RedirectionResolverConfig to_backup
Definition node_info_network.h:121
Network interface description.
Definition node_info_network.h:92
std::optional< size_t > max_open_sessions_hard
Maximum open sessions hard limit.
Definition node_info_network.h:102
std::optional< Redirections > redirections
Definition node_info_network.h:126
NetProtocol protocol
Definition node_info_network.h:95
std::optional< size_t > max_open_sessions_soft
Maximum open sessions soft limit.
Definition node_info_network.h:99
std::optional< size_t > forwarding_timeout_ms
Timeout for forwarded RPC calls (in milliseconds)
Definition node_info_network.h:116
std::optional< ApplicationProtocol > app_protocol
Definition node_info_network.h:96
std::optional< http::ParserConfiguration > http_configuration
HTTP configuration.
Definition node_info_network.h:105
NetAddress bind_address
Definition node_info_network.h:93
std::optional< std::vector< std::string > > accepted_endpoints
Definition node_info_network.h:113
NetAddress published_address
Definition node_info_network.h:94
bool operator==(const NetInterface &other) const
Definition node_info_network.h:128
std::optional< Endorsement > endorsement
Interface endorsement.
Definition node_info_network.h:109
Node network information.
Definition node_info_network.h:85
NetInterface node_to_node_interface
Node-to-node network interface.
Definition node_info_network.h:147
std::optional< ACME > acme
ACME configuration.
Definition node_info_network.h:162
std::string RpcInterfaceID
Definition node_info_network.h:87
std::string NetProtocol
Definition node_info_network.h:88
std::string NetAddress
Definition node_info_network.h:86
std::map< RpcInterfaceID, NetInterface > RpcInterfaces
RPC interface mapping.
Definition node_info_network.h:144
RpcInterfaces rpc_interfaces
RPC interfaces.
Definition node_info_network.h:150
Definition node_info_network.h:192
bool operator==(const NodeInfoNetwork &other) const
Definition node_info_network.h:197
NodeInfoNetwork(const NodeInfoNetwork_v2 &other)
Definition node_info_network.h:194
NodeInfoNetwork()=default
Definition node_info_network.h:73
bool operator==(const RedirectionResolverConfig &) const =default
RedirectionResolutionKind kind
Definition node_info_network.h:74
nlohmann::json target
Definition node_info_network.h:75