From 849f0aaef74f2ae8dda0a88c502c595d952496d7 Mon Sep 17 00:00:00 2001 From: terry-xiaoyu <506895667@qq.com> Date: Fri, 4 May 2018 17:28:16 +0800 Subject: [PATCH 1/3] fix emqttd_ctl crashed when emq_auth_usename doesn't exist --- src/emqttd_cli.erl | 9 +++------ src/emqttd_plugins.erl | 27 +++++++++++++++++++-------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/emqttd_cli.erl b/src/emqttd_cli.erl index 49e2500bb..ca5534eb2 100644 --- a/src/emqttd_cli.erl +++ b/src/emqttd_cli.erl @@ -30,7 +30,7 @@ -export([load/0]). --export([status/1, broker/1, cluster/1, users/1, clients/1, sessions/1, +-export([status/1, broker/1, cluster/1, clients/1, sessions/1, routes/1, topics/1, subscriptions/1, plugins/1, bridges/1, listeners/1, vm/1, mnesia/1, trace/1, acl/1]). @@ -152,9 +152,7 @@ cluster(_) -> {"cluster status", "Cluster status"}]). %%-------------------------------------------------------------------- -%% @doc Users usage - -users(Args) -> emq_auth_username:cli(Args). +%% @doc ACL reload acl(["reload"]) -> emqttd_access_control:reload_acl(); acl(_) -> ?USAGE([{"acl reload", "reload etc/acl.conf"}]). @@ -460,7 +458,7 @@ trace_on(Who, Name, LogFile) -> trace_off(Who, Name) -> case emqttd_trace:stop_trace({Who, iolist_to_binary(Name)}) of - ok -> + ok -> ?PRINT("stop tracing ~s ~s successfully.~n", [Who, Name]); {error, Error} -> ?PRINT("stop tracing ~s ~s error: ~p.~n", [Who, Name, Error]) @@ -607,4 +605,3 @@ format(_, Val) -> Val. bin(S) -> iolist_to_binary(S). - diff --git a/src/emqttd_plugins.erl b/src/emqttd_plugins.erl index 4491e26df..50bbce0e5 100644 --- a/src/emqttd_plugins.erl +++ b/src/emqttd_plugins.erl @@ -99,7 +99,7 @@ list() -> case emqttd:env(plugins_etc_dir) of {ok, PluginsEtc} -> CfgFiles = filelib:wildcard("*.{conf,config}", PluginsEtc), - Plugins = [plugin(CfgFile) || CfgFile <- CfgFiles], + Plugins = all_plugin_attrs(CfgFiles), StartedApps = names(started_app), lists:map(fun(Plugin = #mqtt_plugin{name = Name}) -> case lists:member(Name, StartedApps) of @@ -111,12 +111,24 @@ list() -> [] end. +all_plugin_attrs(CfgFiles) -> + lists:foldl( + fun(CfgFile, Acc) -> + case plugin(CfgFile) of + not_found -> Acc; + Attr -> Acc ++ [Attr] + end + end, [], CfgFiles). + plugin(CfgFile) -> AppName = app_name(CfgFile), - {ok, Attrs} = application:get_all_key(AppName), - Ver = proplists:get_value(vsn, Attrs, "0"), - Descr = proplists:get_value(description, Attrs, ""), - #mqtt_plugin{name = AppName, version = Ver, descr = Descr}. + case application:get_all_key(AppName) of + {ok, Attrs} -> + Ver = proplists:get_value(vsn, Attrs, "0"), + Descr = proplists:get_value(description, Attrs, ""), + #mqtt_plugin{name = AppName, version = Ver, descr = Descr}; + _ -> not_found + end. %% @doc Load a Plugin -spec(load(atom()) -> ok | {error, term()}). @@ -169,7 +181,7 @@ find_plugin(Name) -> find_plugin(Name, list()). find_plugin(Name, Plugins) -> - lists:keyfind(Name, 2, Plugins). + lists:keyfind(Name, 2, Plugins). %% @doc UnLoad a Plugin -spec(unload(atom()) -> ok | {error, term()}). @@ -192,7 +204,7 @@ unload_plugin(App, Persistent) -> {error, Reason} -> {error, Reason} end. - + stop_app(App) -> case application:stop(App) of ok -> @@ -269,4 +281,3 @@ write_loaded(AppNames) -> lager:error("Open File ~p Error: ~p", [File, Error]), {error, Error} end. - From 69665be6f8d1e22c54ba8809fdfb732eee6b9882 Mon Sep 17 00:00:00 2001 From: terry-xiaoyu <506895667@qq.com> Date: Mon, 7 May 2018 20:35:12 +0800 Subject: [PATCH 2/3] #1590 error log when change CleanSession --- src/emqttd_session.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index 58436c8d8..4d920fffb 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -510,7 +510,7 @@ handle_cast({resume, ClientId, ClientPid}, %% Clean Session: true -> false? if CleanSess =:= true -> - ?LOG(error, "CleanSess changed to false.", [], State1), + ?LOG(info, "CleanSess changed to false.", [], State1), emqttd_sm:register_session(ClientId, false, info(State1)); CleanSess =:= false -> ok From 83cfcc5d2f4e5cf08894c87128689baaaab63df7 Mon Sep 17 00:00:00 2001 From: HuangDan Date: Fri, 11 May 2018 12:57:55 +0800 Subject: [PATCH 3/3] Version 2.3.8 --- Makefile | 2 +- src/emqttd.app.src | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 22df025cc..b28e17ac1 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ PROJECT = emqttd PROJECT_DESCRIPTION = Erlang MQTT Broker -PROJECT_VERSION = 2.3.6 +PROJECT_VERSION = 2.3.8 DEPS = goldrush gproc lager esockd ekka mochiweb pbkdf2 lager_syslog bcrypt clique jsx diff --git a/src/emqttd.app.src b/src/emqttd.app.src index a5ec4a7ed..4e3e2cdff 100644 --- a/src/emqttd.app.src +++ b/src/emqttd.app.src @@ -1,6 +1,6 @@ {application,emqttd, [{description,"Erlang MQTT Broker"}, - {vsn,"2.3.7"}, + {vsn,"2.3.8"}, {modules,[]}, {registered,[emqttd_sup]}, {applications,[kernel,stdlib,gproc,lager,esockd,mochiweb,