messages::status -> messages

pull/2232/head
Thomas Winget 10 months ago committed by dr7ana
parent 0000c6b392
commit 7fdecef9b3

@ -538,7 +538,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
respond(messages::status::ERROR_RESPONSE);
respond(messages::ERROR_RESPONSE);
}
_router.rpc_client()->lookup_ons_hash(
@ -548,8 +548,7 @@ namespace llarp
if (maybe)
respond(serialize_response({{"NAME", maybe->ciphertext}}));
else
respond(
serialize_response({{messages::status::STATUS_KEY, FindNameMessage::NOT_FOUND}}));
respond(serialize_response({{messages::STATUS_KEY, FindNameMessage::NOT_FOUND}}));
});
}
@ -567,7 +566,7 @@ namespace llarp
try
{
oxenc::bt_dict_consumer btdc{m.body()};
payload = btdc.require<std::string>(m ? "NAME" : messages::status::STATUS_KEY);
payload = btdc.require<std::string>(m ? "NAME" : messages::STATUS_KEY);
}
catch (const std::exception& e)
{
@ -614,7 +613,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
respond(messages::status::ERROR_RESPONSE);
respond(messages::ERROR_RESPONSE);
return;
}
@ -645,7 +644,7 @@ namespace llarp
}
respond(serialize_response(
{{messages::status::STATUS_KEY, FindRouterMessage::RETRY_EXP}, {"TARGET", neighbors}}));
{{messages::STATUS_KEY, FindRouterMessage::RETRY_EXP}, {"TARGET", neighbors}}));
}
else
{
@ -685,14 +684,14 @@ namespace llarp
else
{
respond(serialize_response(
{{messages::status::STATUS_KEY, FindRouterMessage::RETRY_ITER},
{{messages::STATUS_KEY, FindRouterMessage::RETRY_ITER},
{"TARGET", reinterpret_cast<const char*>(target_addr.data())}}));
}
}
else
{
respond(serialize_response(
{{messages::status::STATUS_KEY, FindRouterMessage::RETRY_NEW},
{{messages::STATUS_KEY, FindRouterMessage::RETRY_NEW},
{"TARGET", reinterpret_cast<const char*>(closest_rid.data())}}));
}
}
@ -842,7 +841,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
respond(messages::status::ERROR_RESPONSE);
respond(messages::ERROR_RESPONSE);
return;
}
@ -853,15 +852,14 @@ namespace llarp
if (not service::EncryptedIntroSet::verify(introset, derived_signing_key, sig))
{
log::error(link_cat, "Received PublishIntroMessage with invalid introset: {}", introset);
respond(serialize_response(
{{messages::status::STATUS_KEY, PublishIntroMessage::INVALID_INTROSET}}));
respond(serialize_response({{messages::STATUS_KEY, PublishIntroMessage::INVALID_INTROSET}}));
return;
}
if (now + service::MAX_INTROSET_TIME_DELTA > signed_at + path::DEFAULT_LIFETIME)
{
log::error(link_cat, "Received PublishIntroMessage with expired introset: {}", introset);
respond(serialize_response({{messages::status::STATUS_KEY, PublishIntroMessage::EXPIRED}}));
respond(serialize_response({{messages::STATUS_KEY, PublishIntroMessage::EXPIRED}}));
return;
}
@ -871,8 +869,7 @@ namespace llarp
{
log::error(
link_cat, "Received PublishIntroMessage but only know {} nodes", closest_rcs.size());
respond(
serialize_response({{messages::status::STATUS_KEY, PublishIntroMessage::INSUFFICIENT}}));
respond(serialize_response({{messages::STATUS_KEY, PublishIntroMessage::INSUFFICIENT}}));
return;
}
@ -884,8 +881,7 @@ namespace llarp
{
log::error(
link_cat, "Received PublishIntroMessage with invalide relay order: {}", relay_order);
respond(serialize_response(
{{messages::status::STATUS_KEY, PublishIntroMessage::INVALID_ORDER}}));
respond(serialize_response({{messages::STATUS_KEY, PublishIntroMessage::INVALID_ORDER}}));
return;
}
@ -902,7 +898,7 @@ namespace llarp
relay_order);
_router.contacts()->services()->PutNode(dht::ISNode{std::move(enc)});
respond(serialize_response({{messages::status::STATUS_KEY, ""}}));
respond(serialize_response({{messages::STATUS_KEY, ""}}));
}
else
{
@ -940,7 +936,7 @@ namespace llarp
log::info(link_cat, "Received PublishIntroMessage for {} (TXID: {}); we are candidate {}");
_router.contacts()->services()->PutNode(dht::ISNode{std::move(enc)});
respond(serialize_response({{messages::status::STATUS_KEY, ""}}));
respond(serialize_response({{messages::STATUS_KEY, ""}}));
}
else
log::warning(
@ -963,7 +959,7 @@ namespace llarp
try
{
oxenc::bt_dict_consumer btdc{m.body()};
payload = btdc.require<std::string>(messages::status::STATUS_KEY);
payload = btdc.require<std::string>(messages::STATUS_KEY);
}
catch (const std::exception& e)
{
@ -1014,7 +1010,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
respond(messages::status::ERROR_RESPONSE);
respond(messages::ERROR_RESPONSE);
return;
}
@ -1026,8 +1022,7 @@ namespace llarp
{
log::warning(
link_cat, "Received FindIntroMessage with invalid relay order: {}", relay_order);
respond(
serialize_response({{messages::status::STATUS_KEY, FindIntroMessage::INVALID_ORDER}}));
respond(serialize_response({{messages::STATUS_KEY, FindIntroMessage::INVALID_ORDER}}));
return;
}
@ -1037,8 +1032,7 @@ namespace llarp
{
log::error(
link_cat, "Received FindIntroMessage but only know {} nodes", closest_rcs.size());
respond(serialize_response(
{{messages::status::STATUS_KEY, FindIntroMessage::INSUFFICIENT_NODES}}));
respond(serialize_response({{messages::STATUS_KEY, FindIntroMessage::INSUFFICIENT_NODES}}));
return;
}
@ -1076,7 +1070,7 @@ namespace llarp
log::warning(
link_cat,
"Received FindIntroMessage with relayed == false and no local introset entry");
respond(serialize_response({{messages::status::STATUS_KEY, FindIntroMessage::NOT_FOUND}}));
respond(serialize_response({{messages::STATUS_KEY, FindIntroMessage::NOT_FOUND}}));
}
}
}
@ -1095,7 +1089,7 @@ namespace llarp
try
{
oxenc::bt_dict_consumer btdc{m.body()};
payload = btdc.require<std::string>((m) ? "INTROSET" : messages::status::STATUS_KEY);
payload = btdc.require<std::string>((m) ? "INTROSET" : messages::STATUS_KEY);
}
catch (const std::exception& e)
{
@ -1122,8 +1116,7 @@ namespace llarp
if (!_router.path_context().AllowingTransit())
{
log::warning(link_cat, "got path build request when not permitting transit");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::NO_TRANSIT}}), true);
m.respond(serialize_response({{messages::STATUS_KEY, PathBuildMessage::NO_TRANSIT}}), true);
return;
}
try
@ -1154,8 +1147,7 @@ namespace llarp
{
log::info(link_cat, "DH server initialization failed during path build");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}),
true);
serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}), true);
return;
}
@ -1169,8 +1161,7 @@ namespace llarp
{
log::error(link_cat, "HMAC failed on path build request");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}),
true);
serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}), true);
return;
}
if (!std::equal(
@ -1178,8 +1169,7 @@ namespace llarp
{
log::info(link_cat, "HMAC mismatch on path build request");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}),
true);
serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}), true);
return;
}
@ -1192,8 +1182,7 @@ namespace llarp
{
log::info(link_cat, "Decrypt failed on path build request");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}),
true);
serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}), true);
return;
}
@ -1214,9 +1203,7 @@ namespace llarp
if (frame.empty())
{
log::info(link_cat, "Path build request received invalid frame");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_FRAMES}}),
true);
m.respond(serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_FRAMES}}), true);
return;
}
@ -1233,9 +1220,7 @@ namespace llarp
if (hop_info.txID.IsZero() || hop_info.rxID.IsZero())
{
log::warning(link_cat, "Invalid PathID; PathIDs must be non-zero");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_PATHID}}),
true);
m.respond(serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_PATHID}}), true);
return;
}
@ -1244,9 +1229,7 @@ namespace llarp
if (_router.path_context().HasTransitHop(hop_info))
{
log::warning(link_cat, "Invalid PathID; PathIDs must be unique");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_PATHID}}),
true);
m.respond(serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_PATHID}}), true);
return;
}
@ -1254,9 +1237,7 @@ namespace llarp
hop->pathKey.data(), other_pubkey.data(), _router.pubkey(), inner_nonce.data()))
{
log::warning(link_cat, "DH failed during path build.");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}),
true);
m.respond(serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_CRYPTO}}), true);
return;
}
// generate hash of hop key for nonce mutation
@ -1271,8 +1252,7 @@ namespace llarp
{
log::warning(link_cat, "Path build attempt with too long of a lifetime.");
m.respond(
serialize_response({{messages::status::STATUS_KEY, PathBuildMessage::BAD_LIFETIME}}),
true);
serialize_response({{messages::STATUS_KEY, PathBuildMessage::BAD_LIFETIME}}), true);
return;
}
@ -1284,7 +1264,7 @@ namespace llarp
hop->terminal_hop = true;
// we are terminal hop and everything is okay
_router.path_context().PutTransitHop(hop);
m.respond(messages::status::OK_RESPONSE, false);
m.respond(messages::OK_RESPONSE, false);
return;
}
@ -1316,7 +1296,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
m.respond(messages::status::ERROR_RESPONSE, true);
m.respond(messages::ERROR_RESPONSE, true);
return;
}
}
@ -1331,7 +1311,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
m.respond(messages::status::ERROR_RESPONSE, true);
m.respond(messages::ERROR_RESPONSE, true);
return;
}
}
@ -1346,7 +1326,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
// m.respond(serialize_response({{messages::status::STATUS_KEY, "EXCEPTION"}}), true);
// m.respond(serialize_response({{messages::STATUS_KEY, "EXCEPTION"}}), true);
return;
}
}
@ -1361,7 +1341,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
m.respond(messages::status::ERROR_RESPONSE, true);
m.respond(messages::ERROR_RESPONSE, true);
return;
}
}
@ -1376,7 +1356,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
m.respond(messages::status::ERROR_RESPONSE, true);
m.respond(messages::ERROR_RESPONSE, true);
return;
}
}
@ -1415,7 +1395,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
m.respond(messages::status::ERROR_RESPONSE, true);
m.respond(messages::ERROR_RESPONSE, true);
throw;
}
}
@ -1484,8 +1464,7 @@ namespace llarp
(exit_ep->UpdateLocalPath(transit_hop->info.rxID))
? m.respond(UpdateExitMessage::sign_and_serialize_response(_router.identity(), tx_id))
: m.respond(
serialize_response(
{{messages::status::STATUS_KEY, UpdateExitMessage::UPDATE_FAILED}}),
serialize_response({{messages::STATUS_KEY, UpdateExitMessage::UPDATE_FAILED}}),
true);
}
// If we fail to verify the message, no-op
@ -1494,7 +1473,7 @@ namespace llarp
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
m.respond(messages::status::ERROR_RESPONSE, true);
m.respond(messages::ERROR_RESPONSE, true);
return;
}
}
@ -1574,13 +1553,12 @@ namespace llarp
}
m.respond(
serialize_response({{messages::status::STATUS_KEY, CloseExitMessage::UPDATE_FAILED}}),
true);
serialize_response({{messages::STATUS_KEY, CloseExitMessage::UPDATE_FAILED}}), true);
}
catch (const std::exception& e)
{
log::warning(link_cat, "Exception: {}", e.what());
m.respond(messages::status::ERROR_RESPONSE, true);
m.respond(messages::ERROR_RESPONSE, true);
return;
}
}

@ -27,15 +27,12 @@ namespace llarp
return oxenc::bt_serialize(supplement);
}
namespace status
{
// ideally STATUS is the first key in a bt-dict, so use a single, early ascii char
inline const auto STATUS_KEY = "!"s;
inline const auto TIMEOUT_RESPONSE = serialize_response({{STATUS_KEY, "TIMEOUT"}});
inline const auto ERROR_RESPONSE = serialize_response({{STATUS_KEY, "ERROR"}});
inline const auto OK_RESPONSE = serialize_response({{STATUS_KEY, "OK"}});
} // namespace status
} // namespace messages
// ideally STATUS is the first key in a bt-dict, so use a single, early ascii char
inline const auto STATUS_KEY = "!"s;
inline const auto TIMEOUT_RESPONSE = serialize_response({{STATUS_KEY, "TIMEOUT"}});
inline const auto ERROR_RESPONSE = serialize_response({{STATUS_KEY, "ERROR"}});
inline const auto OK_RESPONSE = serialize_response({{STATUS_KEY, "OK"}});
} // namespace messages
/// abstract base class for serialized messages
struct AbstractSerializable

@ -127,7 +127,7 @@ namespace llarp::path
if (m.timed_out)
{
response_cb(messages::status::TIMEOUT_RESPONSE);
response_cb(messages::TIMEOUT_RESPONSE);
return;
}
@ -143,7 +143,7 @@ namespace llarp::path
catch (const std::exception& e)
{
log::warning(path_cat, "Error parsing path control message response: {}", e.what());
response_cb(messages::status::ERROR_RESPONSE);
response_cb(messages::ERROR_RESPONSE);
return;
}

@ -489,7 +489,7 @@ namespace llarp
else
{
oxenc::bt_dict_consumer d{m.body()};
auto status = d.require<std::string_view>(messages::status::STATUS_KEY);
auto status = d.require<std::string_view>(messages::STATUS_KEY);
log::warning(path_cat, "Path build returned failure status: {}", status);
}
}

@ -822,7 +822,7 @@ namespace llarp::service
try
{
oxenc::bt_dict_consumer btdc{resp};
auto status = btdc.require<std::string_view>(messages::status::STATUS_KEY);
auto status = btdc.require<std::string_view>(messages::STATUS_KEY);
if (status != "OK"sv)
{
log::info(link_cat, "Error on ONS lookup: {}", status);
@ -1367,7 +1367,7 @@ namespace llarp::service
try
{
oxenc::bt_dict_consumer btdc{resp};
auto status = btdc.require<std::string_view>(messages::status::STATUS_KEY);
auto status = btdc.require<std::string_view>(messages::STATUS_KEY);
if (status != "OK"sv)
{
log::info(link_cat, "Error in find intro set response: {}", status);

@ -188,7 +188,7 @@ namespace llarp::service
try
{
oxenc::bt_dict_consumer btdc{resp};
auto status = btdc.require<std::string_view>(messages::status::STATUS_KEY);
auto status = btdc.require<std::string_view>(messages::STATUS_KEY);
if (status != "OK"sv)
{
log::info(link_cat, "Error in find intro set response: {}", status);

Loading…
Cancel
Save