diff --git a/CHANGES-4.3.md b/CHANGES-4.3.md index 0245e23ab..0a61ca487 100644 --- a/CHANGES-4.3.md +++ b/CHANGES-4.3.md @@ -14,6 +14,8 @@ File format: ### Enhancements +* Refactored `bin/emqx` help messages. +* Upgrade script refuses upgrade from incompatible versions. (e.g. hot upgrade from 4.3 to 4.4 will fail fast). * Made possible for EMQX to boot from a Linux directory which has white spaces in its path. * Add support for JWT authorization [#7596] Now MQTT clients may be authorized with respect to a specific claim containing publish/subscribe topic whitelists. @@ -24,14 +26,14 @@ File format: * Mnesia auth/acl http api support multiple condition queries. * Inflight QoS1 Messages for shared topics are now redispatched to another alive subscribers upon chosen subscriber session termination. * Make auth metrics name more understandable. +* Allow emqx_management http listener binding to specific interface [#8005] +* Add rule-engine function float2str/2, user can specify the float output precision [#7991] ### Bug fixes * List subscription topic (/api/v4/subscriptions), the result do not match with multiple conditions. * SSL closed error bug fixed for redis client. * Fix mqtt-sn client disconnected due to re-send a duplicated qos2 message * Rule-engine function hexstr2bin/1 support half byte [#7977] -* Add rule-engine function float2str/2, user can specify the float output precision [#7991] - * Improved resilience against autocluster partitioning during cluster startup. [#7876] [ekka-158](https://github.com/emqx/ekka/pull/158) diff --git a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src index 35f180341..f5581e7c6 100644 --- a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src +++ b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src @@ -2,14 +2,14 @@ %% Unless you know what you are doing, DO NOT edit manually!! {VSN, [{<<"4\\.4\\.[0-2]">>, - %% epgsql 4.4.0 -> 4.6.0. - %% epgsql has no appup, so we can only restart it. - [{restart_application,epgsql}, - {restart_application,emqx_auth_pgsql}]}, + %% restart it due to epgsql upgraded from 4.4.0 to 4.6.0 + %% in emqx_auth_pgsql:v4.3.3 + [{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]}, + {load_module,emqx_auth_pgsql_app,brutal_purge,soft_purge,[]} + ]}, {<<".*">>,[]}], [{<<"4\\.4\\.[0-2]">>, - %% epgsql 4.4.0 -> 4.6.0. - %% epgsql has no appup, so we can only restart it. - [{restart_application,epgsql}, - {restart_application,emqx_auth_pgsql}]}, + [{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]}, + {load_module,emqx_auth_pgsql_app,brutal_purge,soft_purge,[]} + ]}, {<<".*">>,[]}]}. diff --git a/apps/emqx_management/priv/emqx_management.schema b/apps/emqx_management/priv/emqx_management.schema index 343a70de6..a30a20e4d 100644 --- a/apps/emqx_management/priv/emqx_management.schema +++ b/apps/emqx_management/priv/emqx_management.schema @@ -227,6 +227,13 @@ end}. Prefix = "management.listener." ++ atom_to_list(Proto), case cuttlefish:conf_get(Prefix, Conf, undefined) of undefined -> Acc; + {IPStr, Port} -> + {ok, IP} = inet:parse_address(IPStr), + [{Proto, Port, [{ip, IP}] ++ TcpOpts(Prefix) ++ Opts(Prefix) + ++ case Proto of + http -> []; + https -> SslOpts(Prefix) + end} | Acc]; Port -> [{Proto, Port, TcpOpts(Prefix) ++ Opts(Prefix) ++ case Proto of @@ -236,4 +243,3 @@ end}. end end, [], [http, https]) end}. - diff --git a/bin/emqx b/bin/emqx index 180b4eb77..4232d8162 100755 --- a/bin/emqx +++ b/bin/emqx @@ -42,15 +42,15 @@ assert_node_alive() { fi } -check_eralng_start() { - "$BINDIR/$PROGNAME" -noshell -boot "$REL_DIR/start_clean" -s crypto start -s init stop +check_erlang_start() { + "$BINDIR/$PROGNAME" -boot "$REL_DIR/start_clean" -eval "crypto:start(),halt()" } -if ! check_eralng_start >/dev/null 2>&1; then +if ! check_erlang_start >/dev/null 2>&1; then BUILT_ON="$(head -1 "${REL_DIR}/BUILT_ON")" ## failed to start, might be due to missing libs, try to be portable export LD_LIBRARY_PATH="$DYNLIBS_DIR:$LD_LIBRARY_PATH" - if ! check_eralng_start; then + if ! check_erlang_start; then ## it's hopeless echoerr "FATAL: Unable to start Erlang." echoerr "Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed." diff --git a/include/emqx_release.hrl b/include/emqx_release.hrl index f95494ed8..15cb64b79 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.4-beta.1"}). +-define(EMQX_RELEASE, {opensource, "4.4.4-rc.1"}). -else. diff --git a/scripts/get-dashboard.sh b/scripts/get-dashboard.sh index 16de56630..6d94bae58 100755 --- a/scripts/get-dashboard.sh +++ b/scripts/get-dashboard.sh @@ -9,12 +9,12 @@ PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}" case "${PKG_VSN}" in 4.3*) EMQX_CE_DASHBOARD_VERSION='v4.3.7' - EMQX_EE_DASHBOARD_VERSION='v4.3.18' + EMQX_EE_DASHBOARD_VERSION='v4.3.19' ;; 4.4*) # keep the above 4.3 untouched, otherwise conflicts! EMQX_CE_DASHBOARD_VERSION='v4.4.2' - EMQX_EE_DASHBOARD_VERSION='v4.4.9' + EMQX_EE_DASHBOARD_VERSION='v4.4.10' ;; *) echo "Unsupported version $PKG_VSN" >&2