make httppoison use configurable http proxy
authorJeff Becker <jeff@i2p.rocks>
Sat, 30 Dec 2017 16:35:53 +0000 (11:35 -0500)
committerJeff Becker <jeff@i2p.rocks>
Sat, 30 Dec 2017 18:08:36 +0000 (13:08 -0500)
config/config.exs
lib/pleroma/http/http.ex [new file with mode: 0644]

index 503ce8d64be86757ab9dd586f14a720bb22dbb84..28335a6d473ff4bd9bdede4afe5cbd2e3fc5e597 100644 (file)
@@ -32,7 +32,7 @@ config :mime, :types, %{
 
 config :pleroma, :websub, Pleroma.Web.Websub
 config :pleroma, :ostatus, Pleroma.Web.OStatus
-config :pleroma, :httpoison, HTTPoison
+config :pleroma, :httpoison, Pleroma.HTTP
 
 version = with {version, 0} <- System.cmd("git", ["rev-parse", "HEAD"]) do
             "Pleroma #{String.trim(version)}"
@@ -40,6 +40,9 @@ version = with {version, 0} <- System.cmd("git", ["rev-parse", "HEAD"]) do
             _ -> "Pleroma dev"
           end
 
+config :pleroma, :http,
+  proxy_url: ""
+
 config :pleroma, :instance,
   version: version,
   name: "Pleroma",
diff --git a/lib/pleroma/http/http.ex b/lib/pleroma/http/http.ex
new file mode 100644 (file)
index 0000000..3113541
--- /dev/null
@@ -0,0 +1,14 @@
+
+defmodule Pleroma.HTTP do
+  use HTTPoison.Base
+
+  def process_request_options(options) do
+    config = Application.get_env(:pleroma, :http, [])
+    proxy = Keyword.get(config, :proxy_url, "")
+    case proxy do
+      "" -> options
+      _ -> options ++ [proxy: proxy]
+    end
+  end
+
+end