hackney adapter helper: support tlsv1.3 and remove custom opts
authorrinpatch <rinpatch@sdf.org>
Sat, 30 May 2020 10:59:04 +0000 (13:59 +0300)
committerrinpatch <rinpatch@sdf.org>
Sat, 30 May 2020 12:36:55 +0000 (15:36 +0300)
- partitial_chain is no longer exported, but it seems to be the default anyway.
- The bug that caused sni to not be sent automatically seems to be fixed -
https://github.com/benoitc/hackney/issues/612

lib/pleroma/http/adapter_helper/hackney.ex
test/http/adapter_helper/hackney_test.exs

index dcb4cac71966de2e3cddfafe1bf122ccd4e2f77d..3972a03a948717eb436e13666bc2caf1dff689d3 100644 (file)
@@ -22,22 +22,7 @@ defmodule Pleroma.HTTP.AdapterHelper.Hackney do
     |> Pleroma.HTTP.AdapterHelper.maybe_add_proxy(proxy)
   end
 
-  defp add_scheme_opts(opts, %URI{scheme: "http"}), do: opts
-
-  defp add_scheme_opts(opts, %URI{scheme: "https", host: host}) do
-    ssl_opts = [
-      ssl_options: [
-        # Workaround for remote server certificate chain issues
-        partial_chain: &:hackney_connect.partial_chain/1,
-
-        # We don't support TLS v1.3 yet
-        versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"],
-        server_name_indication: to_charlist(host)
-      ]
-    ]
-
-    Keyword.merge(opts, ssl_opts)
-  end
+  defp add_scheme_opts(opts, _), do: opts
 
   def after_request(_), do: :ok
 end
index 3f7e708e07731a8d5da46c0d335912c649a34f34..f2361ff0b94ff4bbf5b862e43fa73e1c3cbabc90 100644 (file)
@@ -31,17 +31,5 @@ defmodule Pleroma.HTTP.AdapterHelper.HackneyTest do
       assert opts[:b] == 1
       refute Keyword.has_key?(opts, :proxy)
     end
-
-    test "add opts for https" do
-      uri = URI.parse("https://domain.com")
-
-      opts = Hackney.options(uri)
-
-      assert opts[:ssl_options] == [
-               partial_chain: &:hackney_connect.partial_chain/1,
-               versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"],
-               server_name_indication: 'domain.com'
-             ]
-    end
   end
 end