Improve error messages for missing auth event and invalid join validations.
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use ruma::{CanonicalJsonObject, OwnedEventId, RoomVersionId};
|
||||
use serde_json::value::RawValue as RawJsonValue;
|
||||
|
||||
use crate::{Result, err, matrix::room_version};
|
||||
use crate::{Result, debug_error, err, matrix::room_version};
|
||||
|
||||
/// Generates a correct eventId for the incoming pdu.
|
||||
///
|
||||
@@ -12,7 +12,8 @@ pub fn gen_event_id_canonical_json(
|
||||
room_version_id: &RoomVersionId,
|
||||
) -> Result<(OwnedEventId, CanonicalJsonObject)> {
|
||||
let value: CanonicalJsonObject = serde_json::from_str(pdu.get())
|
||||
.map_err(|e| err!(BadServerResponse(warn!("Error parsing incoming event: {e:?}"))))?;
|
||||
.map_err(|e| err!(BadServerResponse(warn!("Error parsing canonical event: {e}"))))
|
||||
.inspect_err(|e| debug_error!("{pdu:#?} {e:?}"))?;
|
||||
|
||||
let event_id = gen_event_id(&value, room_version_id)?;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ mod room_member;
|
||||
mod tests;
|
||||
|
||||
use futures::{
|
||||
FutureExt, TryFutureExt, TryStreamExt,
|
||||
FutureExt, TryStreamExt,
|
||||
future::{join3, try_join},
|
||||
};
|
||||
use ruma::{
|
||||
@@ -119,9 +119,10 @@ where
|
||||
let seen_auth_types = incoming_event
|
||||
.auth_events()
|
||||
.try_stream()
|
||||
.and_then(|event_id: &EventId| {
|
||||
fetch_event(event_id.to_owned())
|
||||
.map_err(|_| err!(Request(NotFound("failed to find auth event"))))
|
||||
.and_then(async |event_id: &EventId| match fetch_event(event_id.to_owned()).await {
|
||||
| Ok(auth_event) => Ok(auth_event),
|
||||
| Err(e) if e.is_not_found() => Err!(Request(NotFound("auth event {event_id}: {e}"))),
|
||||
| Err(e) => Err(e),
|
||||
})
|
||||
.ready_try_fold(seen_auth_types, |mut seen_auth_types, auth_event| {
|
||||
let event_id = auth_event.event_id();
|
||||
|
||||
Reference in New Issue
Block a user