]> Untitled Git - lemmy.git/commitdiff
Set accept header and timeout for outgoing apub requests
authorFelix Ableitner <me@nutomic.com>
Tue, 7 Apr 2020 15:29:23 +0000 (17:29 +0200)
committerFelix Ableitner <me@nutomic.com>
Tue, 7 Apr 2020 15:29:23 +0000 (17:29 +0200)
server/src/apub/mod.rs
server/src/apub/puller.rs

index f2e5a56f3fe720808b7ee87f4f735c068493754f..1669ee8957a3ae0445c7cbb3d7562d8bf6939736 100644 (file)
@@ -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)
 }
 
index 915f1884c784f29341409fa343c27fc24efaf896..fde914bc412906699e551d13baafa0f755cb1672 100644 (file)
@@ -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)
 }