hiding raise error logic to otp_version module

This commit is contained in:
Alexander Strizhakov 2020-03-03 13:24:19 +03:00
parent 28ed4b41d0
commit 24d1ac125c
No known key found for this signature in database
GPG Key ID: 022896A53AEF1381
2 changed files with 24 additions and 19 deletions

View File

@ -42,6 +42,10 @@ def start(_type, _args) do
setup_instrumenters() setup_instrumenters()
load_custom_modules() load_custom_modules()
if adapter() == Tesla.Adapter.Gun do
Pleroma.OTPVersion.check!()
end
# Define workers and child supervisors to be supervised # Define workers and child supervisors to be supervised
children = children =
[ [
@ -66,25 +70,6 @@ def start(_type, _args) do
Pleroma.Gopher.Server Pleroma.Gopher.Server
] ]
if adapter() == Tesla.Adapter.Gun do
case Pleroma.OTPVersion.check() do
:ok ->
:ok
{:error, version} ->
raise "
!!!OTP VERSION WARNING!!!
You are using gun adapter with OTP version #{version}, which doesn't support correct handling of unordered certificates chains.
"
:undefined ->
raise "
!!!OTP VERSION WARNING!!!
To support correct handling of unordered certificates chains - OTP version must be > 22.2.
"
end
end
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
# for other strategies and supported options # for other strategies and supported options
opts = [strategy: :one_for_one, name: Pleroma.Supervisor] opts = [strategy: :one_for_one, name: Pleroma.Supervisor]

View File

@ -5,6 +5,26 @@
defmodule Pleroma.OTPVersion do defmodule Pleroma.OTPVersion do
@type check_status() :: :ok | :undefined | {:error, String.t()} @type check_status() :: :ok | :undefined | {:error, String.t()}
@spec check!() :: :ok | no_return()
def check! do
case check() do
:ok ->
:ok
{:error, version} ->
raise "
!!!OTP VERSION WARNING!!!
You are using gun adapter with OTP version #{version}, which doesn't support correct handling of unordered certificates chains.
"
:undefined ->
raise "
!!!OTP VERSION WARNING!!!
To support correct handling of unordered certificates chains - OTP version must be > 22.2.
"
end
end
@spec check() :: check_status() @spec check() :: check_status()
def check do def check do
# OTP Version https://erlang.org/doc/system_principles/versions.html#otp-version # OTP Version https://erlang.org/doc/system_principles/versions.html#otp-version