Merge pull request #8025 from emqx/copy-of_main-v4.3
merge main-v4.3 to main-v4.4
This commit is contained in:
commit
e5098869c9
|
@ -14,6 +14,8 @@ File format:
|
||||||
|
|
||||||
### Enhancements
|
### 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.
|
* Made possible for EMQX to boot from a Linux directory which has white spaces in its path.
|
||||||
* Add support for JWT authorization [#7596]
|
* Add support for JWT authorization [#7596]
|
||||||
Now MQTT clients may be authorized with respect to a specific claim containing publish/subscribe topic whitelists.
|
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.
|
* 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.
|
* Inflight QoS1 Messages for shared topics are now redispatched to another alive subscribers upon chosen subscriber session termination.
|
||||||
* Make auth metrics name more understandable.
|
* 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
|
### Bug fixes
|
||||||
* List subscription topic (/api/v4/subscriptions), the result do not match with multiple conditions.
|
* List subscription topic (/api/v4/subscriptions), the result do not match with multiple conditions.
|
||||||
* SSL closed error bug fixed for redis client.
|
* SSL closed error bug fixed for redis client.
|
||||||
* Fix mqtt-sn client disconnected due to re-send a duplicated qos2 message
|
* Fix mqtt-sn client disconnected due to re-send a duplicated qos2 message
|
||||||
* Rule-engine function hexstr2bin/1 support half byte [#7977]
|
* 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
|
* Improved resilience against autocluster partitioning during cluster
|
||||||
startup. [#7876]
|
startup. [#7876]
|
||||||
[ekka-158](https://github.com/emqx/ekka/pull/158)
|
[ekka-158](https://github.com/emqx/ekka/pull/158)
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
%% Unless you know what you are doing, DO NOT edit manually!!
|
%% Unless you know what you are doing, DO NOT edit manually!!
|
||||||
{VSN,
|
{VSN,
|
||||||
[{<<"4\\.4\\.[0-2]">>,
|
[{<<"4\\.4\\.[0-2]">>,
|
||||||
%% epgsql 4.4.0 -> 4.6.0.
|
%% restart it due to epgsql upgraded from 4.4.0 to 4.6.0
|
||||||
%% epgsql has no appup, so we can only restart it.
|
%% in emqx_auth_pgsql:v4.3.3
|
||||||
[{restart_application,epgsql},
|
[{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]},
|
||||||
{restart_application,emqx_auth_pgsql}]},
|
{load_module,emqx_auth_pgsql_app,brutal_purge,soft_purge,[]}
|
||||||
|
]},
|
||||||
{<<".*">>,[]}],
|
{<<".*">>,[]}],
|
||||||
[{<<"4\\.4\\.[0-2]">>,
|
[{<<"4\\.4\\.[0-2]">>,
|
||||||
%% epgsql 4.4.0 -> 4.6.0.
|
[{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]},
|
||||||
%% epgsql has no appup, so we can only restart it.
|
{load_module,emqx_auth_pgsql_app,brutal_purge,soft_purge,[]}
|
||||||
[{restart_application,epgsql},
|
]},
|
||||||
{restart_application,emqx_auth_pgsql}]},
|
|
||||||
{<<".*">>,[]}]}.
|
{<<".*">>,[]}]}.
|
||||||
|
|
|
@ -227,6 +227,13 @@ end}.
|
||||||
Prefix = "management.listener." ++ atom_to_list(Proto),
|
Prefix = "management.listener." ++ atom_to_list(Proto),
|
||||||
case cuttlefish:conf_get(Prefix, Conf, undefined) of
|
case cuttlefish:conf_get(Prefix, Conf, undefined) of
|
||||||
undefined -> Acc;
|
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 ->
|
Port ->
|
||||||
[{Proto, Port, TcpOpts(Prefix) ++ Opts(Prefix)
|
[{Proto, Port, TcpOpts(Prefix) ++ Opts(Prefix)
|
||||||
++ case Proto of
|
++ case Proto of
|
||||||
|
@ -236,4 +243,3 @@ end}.
|
||||||
end
|
end
|
||||||
end, [], [http, https])
|
end, [], [http, https])
|
||||||
end}.
|
end}.
|
||||||
|
|
||||||
|
|
8
bin/emqx
8
bin/emqx
|
@ -42,15 +42,15 @@ assert_node_alive() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_eralng_start() {
|
check_erlang_start() {
|
||||||
"$BINDIR/$PROGNAME" -noshell -boot "$REL_DIR/start_clean" -s crypto start -s init stop
|
"$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")"
|
BUILT_ON="$(head -1 "${REL_DIR}/BUILT_ON")"
|
||||||
## failed to start, might be due to missing libs, try to be portable
|
## failed to start, might be due to missing libs, try to be portable
|
||||||
export LD_LIBRARY_PATH="$DYNLIBS_DIR:$LD_LIBRARY_PATH"
|
export LD_LIBRARY_PATH="$DYNLIBS_DIR:$LD_LIBRARY_PATH"
|
||||||
if ! check_eralng_start; then
|
if ! check_erlang_start; then
|
||||||
## it's hopeless
|
## it's hopeless
|
||||||
echoerr "FATAL: Unable to start Erlang."
|
echoerr "FATAL: Unable to start Erlang."
|
||||||
echoerr "Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed."
|
echoerr "Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed."
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
-ifndef(EMQX_ENTERPRISE).
|
-ifndef(EMQX_ENTERPRISE).
|
||||||
|
|
||||||
-define(EMQX_RELEASE, {opensource, "4.4.4-beta.1"}).
|
-define(EMQX_RELEASE, {opensource, "4.4.4-rc.1"}).
|
||||||
|
|
||||||
-else.
|
-else.
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,12 @@ PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}"
|
||||||
case "${PKG_VSN}" in
|
case "${PKG_VSN}" in
|
||||||
4.3*)
|
4.3*)
|
||||||
EMQX_CE_DASHBOARD_VERSION='v4.3.7'
|
EMQX_CE_DASHBOARD_VERSION='v4.3.7'
|
||||||
EMQX_EE_DASHBOARD_VERSION='v4.3.18'
|
EMQX_EE_DASHBOARD_VERSION='v4.3.19'
|
||||||
;;
|
;;
|
||||||
4.4*)
|
4.4*)
|
||||||
# keep the above 4.3 untouched, otherwise conflicts!
|
# keep the above 4.3 untouched, otherwise conflicts!
|
||||||
EMQX_CE_DASHBOARD_VERSION='v4.4.2'
|
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
|
echo "Unsupported version $PKG_VSN" >&2
|
||||||
|
|
Loading…
Reference in New Issue