Return xml notice at /notice path.
[akkoma] / lib / pleroma / web / salmon / salmon.ex
index b4f81b4edfdf41a7e80472f431b77a1e78bc71ac..4f6dfed65cd121484ec091f44ce4afb0394b263c 100644 (file)
@@ -60,7 +60,7 @@ defmodule Pleroma.Web.Salmon do
 
     [modulus, exponent] = magickey
     |> String.split(".")
-    |> Enum.map(&Base.url_decode64!/1)
+    |> Enum.map(fn (n) -> Base.url_decode64!(n, padding: false) end)
     |> Enum.map(make_integer)
 
     {:RSAPublicKey, modulus, exponent}
@@ -132,12 +132,16 @@ defmodule Pleroma.Web.Salmon do
   end
 
   defp send_to_user(%{info: %{"salmon" => salmon}}, feed, poster) do
-    poster.(salmon, feed, [{"Content-Type", "application/magic-envelope+xml"}])
+    with {:ok, %{status_code: code}} <- poster.(salmon, feed, [{"Content-Type", "application/magic-envelope+xml"}], timeout: 10000, recv_timeout: 20000) do
+      Logger.debug(fn -> "Pushed to #{salmon}, code #{code}" end)
+    else
+      e -> Logger.debug(fn -> "Pushing salmon to #{salmon} failed, #{inspect(e)}" end)
+    end
   end
 
   defp send_to_user(_,_,_), do: nil
 
-  def publish(user, activity, poster \\ &@httpoison.post/3)
+  def publish(user, activity, poster \\ &@httpoison.post/4)
   def publish(%{info: %{"keys" => keys}} = user, activity, poster) do
     feed = ActivityRepresenter.to_simple_form(activity, user, true)
     |> ActivityRepresenter.wrap_with_entry