diff --git a/Cargo.lock b/Cargo.lock index ab1b60d..aaf210f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,7 +4,7 @@ version = 3 [[package]] name = "activitypub_federation" -version = "0.2.3" +version = "0.3.0" dependencies = [ "activitystreams-kinds", "actix-rt", diff --git a/examples/federation/instance.rs b/examples/federation/instance.rs index 3a40e1a..b1c69f7 100644 --- a/examples/federation/instance.rs +++ b/examples/federation/instance.rs @@ -130,7 +130,7 @@ async fn http_post_user_inbox( let data: InstanceHandle = data.into_inner().deref().clone(); receive_activity::, MyUser, InstanceHandle>( request, - payload, + payload.into_inner(), &data.clone().local_instance, &Data::new(data), ) diff --git a/src/core/inbox.rs b/src/core/inbox.rs index ab6d7fb..dbf3509 100644 --- a/src/core/inbox.rs +++ b/src/core/inbox.rs @@ -6,12 +6,7 @@ use crate::{ Error, LocalInstance, }; -use actix_web::{ - web::{Bytes, Payload}, - FromRequest, - HttpRequest, - HttpResponse, -}; +use actix_web::{dev::Payload, web::Bytes, FromRequest, HttpRequest, HttpResponse}; use anyhow::anyhow; use http_signature_normalization_actix::prelude::DigestVerified; use serde::de::DeserializeOwned; @@ -20,7 +15,7 @@ use tracing::{log::debug, warn}; /// Receive an activity and perform some basic checks, including HTTP signature verification. pub async fn receive_activity( request: HttpRequest, - payload: Payload, + mut payload: Payload, local_instance: &LocalInstance, data: &Data, ) -> Result::Error> @@ -35,7 +30,6 @@ where + From, ::Error: From + From, { - let mut payload = payload.into_inner(); // ensure that payload hash was checked against digest header by middleware DigestVerified::from_request(&request, &mut payload).await?;