configurable timeout
authorHakaba Hitoyo <hakabahitoyo@example.com>
Wed, 18 Jul 2018 04:36:20 +0000 (13:36 +0900)
committerHakaba Hitoyo <hakabahitoyo@example.com>
Wed, 18 Jul 2018 04:36:20 +0000 (13:36 +0900)
config/config.exs
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
lib/pleroma/web/nodeinfo/nodeinfo_controller.ex

index c0a75b78607c67c55ba321cdcb290ab9c8e05ba4..8fb7b7c222c759d612f0700d9162bcf947981016 100644 (file)
@@ -98,7 +98,8 @@ config :pleroma, :gopher,
 config :pleroma, :suggestions,
   enabled: false,
   third_party_engine:
-    "http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-suggestions-api.cgi?{{host}}+{{user}}"
+    "http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-suggestions-api.cgi?{{host}}+{{user}}",
+  timeout: 300_000
 
 # Import environment specific config. This must remain at the bottom
 # of this file so it overrides the configuration defined above.
index 5b79f9600f7a3d632ccca78c73626cdb7bd73a4e..396f11a70f5b2914775450de2a6e35104145f310 100644 (file)
@@ -1077,7 +1077,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
 
   def suggestions(%{assigns: %{user: user}} = conn, _) do
     if Keyword.get(@suggestions, :enabled, false) do
-      api = Keyword.get(@suggestions, :third_party_engine, false)
+      api = Keyword.get(@suggestions, :third_party_engine, "")
+      timeout = Keyword.get(@suggestions, :timeout, 5000)
 
       host =
         Application.get_env(:pleroma, Pleroma.Web.Endpoint)
@@ -1088,7 +1089,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
       url = String.replace(api, "{{host}}", host) |> String.replace("{{user}}", user)
 
       with {:ok, %{status_code: 200, body: body}} <-
-             @httpoison.get(url, [], timeout: 300_000, recv_timeout: 300_000),
+             @httpoison.get(url, [], timeout: timeout, recv_timeout: timeout),
            {:ok, data} <- Jason.decode(body) do
         data2 =
           Enum.slice(data, 0, 40)
index e80e63f27a3d114427bc5efaee5b9b3034652f35..42d322f899b5e9672c6b72a958f50a99a94d3b99 100644 (file)
@@ -45,8 +45,11 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
       metadata: %{
         nodeName: Keyword.get(instance, :name),
         mediaProxy: Keyword.get(media_proxy, :enabled),
-        suggestions: Keyword.get(suggestions, :enabled, false),
-        suggestionsThirdPartyEngine: Keyword.get(suggestions, :third_party_engine, false)
+        suggestions: %{
+          enabled: Keyword.get(suggestions, :enabled, false),
+          thirdPartyEngine: Keyword.get(suggestions, :third_party_engine, ""),
+          timeout: Keyword.get(suggestions, :timeout, 5000)
+        }
       }
     }