rich media: tighten fetching timeouts and size limits
authorWilliam Pitcock <nenolod@dereferenced.org>
Sun, 10 Feb 2019 21:37:51 +0000 (21:37 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Sun, 10 Feb 2019 21:54:08 +0000 (21:54 +0000)
lib/pleroma/web/rich_media/parser.ex

index 38f1cdeecb5c83ded6d18ca0357cd92700d8d896..4341141df8504d67ba2d5b5129dc8ff611e24e42 100644 (file)
@@ -9,6 +9,13 @@ defmodule Pleroma.Web.RichMedia.Parser do
     Pleroma.Web.RichMedia.Parsers.OEmbed
   ]
 
+  @hackney_options [
+    pool: :media,
+    timeout: 2_000,
+    recv_timeout: 2_000,
+    max_body: 2_000_000
+  ]
+
   def parse(nil), do: {:error, "No URL provided"}
 
   if Mix.env() == :test do
@@ -28,7 +35,7 @@ defmodule Pleroma.Web.RichMedia.Parser do
 
   defp parse_url(url) do
     try do
-      {:ok, %Tesla.Env{body: html}} = Pleroma.HTTP.get(url, [], adapter: [pool: :media])
+      {:ok, %Tesla.Env{body: html}} = Pleroma.HTTP.get(url, [], adapter: @hackney_options)
 
       html |> maybe_parse() |> clean_parsed_data() |> check_parsed_data()
     rescue