fix(eventsub): check keepalive (#6058)

This commit is contained in:
nerix
2025-03-09 21:32:49 +01:00
committed by GitHub
parent 673ce8eecf
commit 9124c68278
8 changed files with 224 additions and 148 deletions
@@ -56,9 +56,29 @@ boost::json::result_for<Payload, boost::json::value>::type tag_invoke(
reconnectURL = std::move(treconnectURL.value());
}
static_assert(
std::is_trivially_copyable_v<std::remove_reference_t<
decltype(std::declval<Payload>().keepaliveTimeoutSeconds)>>);
std::optional<int> keepaliveTimeoutSeconds = std::nullopt;
const auto *jvkeepaliveTimeoutSeconds =
root.if_contains("keepalive_timeout_seconds");
if (jvkeepaliveTimeoutSeconds != nullptr &&
!jvkeepaliveTimeoutSeconds->is_null())
{
auto tkeepaliveTimeoutSeconds =
boost::json::try_value_to<int>(*jvkeepaliveTimeoutSeconds);
if (tkeepaliveTimeoutSeconds.has_error())
{
return tkeepaliveTimeoutSeconds.error();
}
keepaliveTimeoutSeconds = tkeepaliveTimeoutSeconds.value();
}
return Payload{
.id = std::move(id.value()),
.reconnectURL = std::move(reconnectURL),
.keepaliveTimeoutSeconds = keepaliveTimeoutSeconds,
};
}