From b91e9e59baf748f6f7b64fe698f976fff35e6eea Mon Sep 17 00:00:00 2001 From: Zhongwen Deng Date: Sat, 7 May 2022 15:40:30 +0800 Subject: [PATCH] chore: bump minirest to 1.3.1(generate api_spec concurrency) --- apps/emqx/src/emqx_tls_lib.erl | 33 ++++++++++++++++--- .../src/emqx_dashboard_listener.erl | 1 + mix.exs | 2 +- rebar.config | 2 +- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/apps/emqx/src/emqx_tls_lib.erl b/apps/emqx/src/emqx_tls_lib.erl index 4250ff430..17aaad74e 100644 --- a/apps/emqx/src/emqx_tls_lib.erl +++ b/apps/emqx/src/emqx_tls_lib.erl @@ -27,6 +27,9 @@ all_ciphers/0 ]). +-compile(export_all). +-compile(nowarn_export_all). + %% SSL files -export([ ensure_ssl_files/2, @@ -99,11 +102,20 @@ all_ciphers(['tlsv1.3']) -> ssl:cipher_suites(exclusive, 'tlsv1.3', openssl); all_ciphers(Versions) -> %% assert non-empty - [_ | _] = dedup(lists:append([ssl:cipher_suites(all, V, openssl) || V <- Versions])). + List = lists:append([ssl:cipher_suites(all, V, openssl) || V <- Versions]), + dedup(List). %% @doc All Pre-selected TLS ciphers. +%% ssl:cipher_suites(all, V, openssl) is too slow. so we cache default ciphers. default_ciphers() -> - selected_ciphers(available_versions()). + case persistent_term:get(default_ciphers, undefined) of + undefined -> + Default = selected_ciphers(available_versions()), + persistent_term:put(default_ciphers, Default), + Default; + Default -> + Default + end. %% @doc Pre-selected TLS ciphers for given versions.. selected_ciphers(Vsns) -> @@ -205,8 +217,21 @@ default_versions(_) -> lists:delete('tlsv1.3', proplists:get_value(available, ssl:versions())). %% Deduplicate a list without re-ordering the elements. -dedup([]) -> []; -dedup([H | T]) -> [H | dedup([I || I <- T, I =/= H])]. +dedup([]) -> + []; +dedup(List) -> + lists:reverse( + lists:foldl( + fun(L, Acc) -> + case lists:member(L, Acc) of + false -> [L | Acc]; + true -> Acc + end + end, + [], + List + ) + ). %% parse comma separated tls version strings parse_versions(Versions) -> diff --git a/apps/emqx_dashboard/src/emqx_dashboard_listener.erl b/apps/emqx_dashboard/src/emqx_dashboard_listener.erl index 14379a463..db06d42ab 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_listener.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_listener.erl @@ -21,6 +21,7 @@ %% API -export([add_handler/0, remove_handler/0]). -export([pre_config_update/3, post_config_update/5]). +-export([regenerate_minirest_dispatch/0]). -behaviour(gen_server). diff --git a/mix.exs b/mix.exs index 30ae36a99..fccc9641c 100644 --- a/mix.exs +++ b/mix.exs @@ -57,7 +57,7 @@ defmodule EMQXUmbrella.MixProject do {:mria, github: "emqx/mria", tag: "0.2.4", override: true}, {:ekka, github: "emqx/ekka", tag: "0.12.5", override: true}, {:gen_rpc, github: "emqx/gen_rpc", tag: "2.8.1", override: true}, - {:minirest, github: "emqx/minirest", tag: "1.3.0", override: true}, + {:minirest, github: "emqx/minirest", tag: "1.3.1", override: true}, {:ecpool, github: "emqx/ecpool", tag: "0.5.2"}, {:replayq, "0.3.4", override: true}, {:pbkdf2, github: "emqx/erlang-pbkdf2", tag: "2.0.4", override: true}, diff --git a/rebar.config b/rebar.config index 7fd9f2a5e..6f9396b29 100644 --- a/rebar.config +++ b/rebar.config @@ -56,7 +56,7 @@ , {mria, {git, "https://github.com/emqx/mria", {tag, "0.2.4"}}} , {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.12.5"}}} , {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.8.1"}}} - , {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.0"}}} + , {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.1"}}} , {ecpool, {git, "https://github.com/emqx/ecpool", {tag, "0.5.2"}}} , {replayq, "0.3.4"} , {pbkdf2, {git, "https://github.com/emqx/erlang-pbkdf2.git", {tag, "2.0.4"}}}