mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-16 15:21:24 +01:00
Merge branch 'parse-incoming-pdu' into 'main'
Draft: refactor parse incoming PDU See merge request matrix/grapevine!179
This commit is contained in:
commit
ea9edda5ee
1 changed files with 5 additions and 26 deletions
|
|
@ -717,7 +717,10 @@ pub(crate) fn parse_incoming_pdu(
|
|||
let room_version_id = services()
|
||||
.rooms
|
||||
.state
|
||||
.get_create_content::<ExtractVersion>(&room_id)?;
|
||||
.get_create_content::<ExtractVersion>(&room_id)
|
||||
.inspect_err(|_| {
|
||||
debug!(%room_id, "This server is not in the room");
|
||||
})?;
|
||||
|
||||
let Ok((event_id, value)) =
|
||||
gen_event_id_canonical_json(pdu, &room_version_id)
|
||||
|
|
@ -746,31 +749,7 @@ pub(crate) async fn send_transaction_message_route(
|
|||
let pub_key_map = RwLock::new(BTreeMap::new());
|
||||
|
||||
for pdu in &body.pdus {
|
||||
let value: CanonicalJsonObject = serde_json::from_str(pdu.get())
|
||||
.map_err(|error| {
|
||||
warn!(%error, object = ?pdu, "Error parsing incoming event");
|
||||
Error::BadServerResponse("Invalid PDU in server response")
|
||||
})?;
|
||||
let room_id: OwnedRoomId = value
|
||||
.get("room_id")
|
||||
.and_then(|id| RoomId::parse(id.as_str()?).ok())
|
||||
.ok_or(Error::BadRequest(
|
||||
ErrorKind::InvalidParam,
|
||||
"Invalid room id in pdu",
|
||||
))?;
|
||||
|
||||
if services()
|
||||
.rooms
|
||||
.state
|
||||
.get_create_content::<ExtractVersion>(&room_id)
|
||||
.is_err()
|
||||
{
|
||||
debug!(%room_id, "This server is not in the room");
|
||||
continue;
|
||||
}
|
||||
|
||||
let r = parse_incoming_pdu(pdu);
|
||||
let (event_id, value, room_id) = match r {
|
||||
let (event_id, value, room_id) = match parse_incoming_pdu(pdu) {
|
||||
Ok(t) => t,
|
||||
Err(error) => {
|
||||
warn!(%error, object = ?pdu, "Error parsing incoming event");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue