|
|
@ -1188,8 +1188,7 @@ pub(crate) fn fetch_and_handle_events<'a>(
|
|
|
|
let mut pdus = vec![];
|
|
|
|
let mut pdus = vec![];
|
|
|
|
for id in events {
|
|
|
|
for id in events {
|
|
|
|
// a. Look at auth cache
|
|
|
|
// a. Look at auth cache
|
|
|
|
let pdu =
|
|
|
|
let pdu = match auth_cache.get(id) {
|
|
|
|
match auth_cache.get(id) {
|
|
|
|
|
|
|
|
Some(pdu) => {
|
|
|
|
Some(pdu) => {
|
|
|
|
debug!("Found {} in cache", id);
|
|
|
|
debug!("Found {} in cache", id);
|
|
|
|
// We already have the auth chain for events in cache
|
|
|
|
// We already have the auth chain for events in cache
|
|
|
@ -1226,7 +1225,7 @@ pub(crate) fn fetch_and_handle_events<'a>(
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Ok(res) => {
|
|
|
|
Ok(res) => {
|
|
|
|
debug!("Got {} over federation: {:?}", id, res);
|
|
|
|
debug!("Got {} over federation: {:?}", id, res);
|
|
|
|
let (event_id, value) =
|
|
|
|
let (event_id, mut value) =
|
|
|
|
crate::pdu::gen_event_id_canonical_json(&res.pdu)?;
|
|
|
|
crate::pdu::gen_event_id_canonical_json(&res.pdu)?;
|
|
|
|
// This will also fetch the auth chain
|
|
|
|
// This will also fetch the auth chain
|
|
|
|
match handle_incoming_pdu(
|
|
|
|
match handle_incoming_pdu(
|
|
|
@ -1240,11 +1239,17 @@ pub(crate) fn fetch_and_handle_events<'a>(
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.await
|
|
|
|
.await
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Ok(_) => Arc::new(serde_json::from_value(
|
|
|
|
Ok(_) => {
|
|
|
|
serde_json::to_value(value)
|
|
|
|
value.insert(
|
|
|
|
.expect("canonicaljsonobject is valid value"),
|
|
|
|
"event_id".to_owned(),
|
|
|
|
)
|
|
|
|
to_canonical_value(&event_id)
|
|
|
|
.expect("This is possible because handle_incoming_pdu worked")),
|
|
|
|
.expect("EventId is a valid CanonicalJsonValue"),
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arc::new(serde_json::from_value(
|
|
|
|
|
|
|
|
serde_json::to_value(value).expect("canonicaljsonobject is valid value"),
|
|
|
|
|
|
|
|
).expect("This is possible because handle_incoming_pdu worked"))
|
|
|
|
|
|
|
|
}
|
|
|
|
Err(e) => {
|
|
|
|
Err(e) => {
|
|
|
|
warn!("Authentication of event {} failed: {:?}", id, e);
|
|
|
|
warn!("Authentication of event {} failed: {:?}", id, e);
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|