@ -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 ;