diff --git a/Makefile b/Makefile index 5841ef611..20420cf73 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,11 @@ CT_OPTS = -cover test/ct.cover.spec -erl_args -name emqttd_ct@127.0.0.1 COVER = true +PLT_APPS = sasl asn1 ssl syntax_tools runtime_tools crypto xmerl os_mon inets public_key ssl lager compiler mnesia +DIALYZER_DIRS := ebin/ +DIALYZER_OPTS := --verbose --statistics -Werror_handling \ + -Wrace_conditions #-Wunmatched_returns + include erlang.mk app:: rebar.config diff --git a/src/emqttd_cli.erl b/src/emqttd_cli.erl index 6ff94893c..fe62b66d7 100644 --- a/src/emqttd_cli.erl +++ b/src/emqttd_cli.erl @@ -477,8 +477,38 @@ listeners([]) -> end, Info) end, esockd:listeners()); +listeners(["restart", Proto, ListenOn]) -> + ListenOn1 = case string:tokens(ListenOn, ":") of + [Port] -> list_to_integer(Port); + [IP, Port] -> {IP, list_to_integer(Port)} + end, + case emqttd_app:restart_listener({list_to_atom(Proto), ListenOn1, []}) of + {ok, _Pid} -> + io:format("Restart ~s listen on ~s successfully.~n", + [list_to_atom(Proto), list_to_atom(ListenOn)]); + {error, Error} -> + io:format("Failed to restart ~s listen on ~s, error:~p~n", + [list_to_atom(Proto), list_to_atom(ListenOn) ,Error]) + end; + +listeners(["stop", Proto, ListenOn]) -> + ListenOn1 = case string:tokens(ListenOn, ":") of + [Port] -> list_to_integer(Port); + [IP, Port] -> {IP, list_to_integer(Port)} + end, + case emqttd_app:stop_listener({list_to_atom(Proto), ListenOn1, []}) of + ok -> + io:format("Stop ~s on ~s successfully.~n", + [list_to_atom(Proto), list_to_atom(ListenOn)]); + {error, Error} -> + io:format("Failed to stop ~s on ~s, error:~p~n", + [list_to_atom(Proto), list_to_atom(ListenOn) ,Error]) + end; + listeners(_) -> - ?PRINT_CMD("listeners", "List listeners"). + ?USAGE([{"listeners", "List listeners"}, + {"listeners restart ", "Restart a listener port"}, + {"listeners stop ", "Stop a listener port"}]). %%-------------------------------------------------------------------- %% Dump ETS diff --git a/src/emqttd_ctl.erl b/src/emqttd_ctl.erl index b309c5c6a..195d3dea0 100644 --- a/src/emqttd_ctl.erl +++ b/src/emqttd_ctl.erl @@ -75,6 +75,8 @@ run([CmdS|Args]) -> _ -> ok catch _:Reason -> + io:format("Reason:~p, get_stacktrace:~p~n", + [Reason, erlang:get_stacktrace()]), {error, Reason} end; [] ->