summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Ableitner <me@nutomic.com>2020-04-07 17:29:23 +0200
committerFelix Ableitner <me@nutomic.com>2020-04-07 17:29:23 +0200
commit17bf6baa25a7b98718f209710d8a8ed908d125bd (patch)
tree6c9f3e7f5066039ce60c159da863d21ee518777b
parent4fadc4d072aa50c1ebd65672214b601240f9e8c7 (diff)
Set accept header and timeout for outgoing apub requests
-rw-r--r--server/src/apub/mod.rs4
-rw-r--r--server/src/apub/puller.rs10
2 files changed, 12 insertions, 2 deletions
diff --git a/server/src/apub/mod.rs b/server/src/apub/mod.rs
index f2e5a56f..1669ee89 100644
--- a/server/src/apub/mod.rs
+++ b/server/src/apub/mod.rs
@@ -13,12 +13,14 @@ use url::Url;
type GroupExt = Ext<Group, ApActorProperties>;
+static APUB_JSON_CONTENT_TYPE: &str = "application/activity+json";
+
fn create_apub_response<T>(json: &T) -> HttpResponse<Body>
where
T: serde::ser::Serialize,
{
HttpResponse::Ok()
- .content_type("application/activity+json")
+ .content_type(APUB_JSON_CONTENT_TYPE)
.json(json)
}
diff --git a/server/src/apub/puller.rs b/server/src/apub/puller.rs
index 915f1884..fde914bc 100644
--- a/server/src/apub/puller.rs
+++ b/server/src/apub/puller.rs
@@ -12,6 +12,7 @@ use failure::Error;
use isahc::prelude::*;
use log::warn;
use serde::Deserialize;
+use std::time::Duration;
fn fetch_node_info(domain: &str) -> Result<NodeInfo, Error> {
let well_known_uri = format!(
@@ -56,7 +57,14 @@ where
}
// TODO: should cache responses here when we are in production
// TODO: this function should return a future
- let text = isahc::get(uri)?.text()?;
+ let timeout = Duration::from_secs(60);
+ let text = Request::get(uri)
+ .header("Accept", APUB_JSON_CONTENT_TYPE)
+ .connect_timeout(timeout)
+ .timeout(timeout)
+ .body(())?
+ .send()?
+ .text()?;
let res: Response = serde_json::from_str(&text)?;
Ok(res)
}