diff --git a/src/emqttd_cli.erl b/src/emqttd_cli.erl index 6f78d4745..c193aac91 100644 --- a/src/emqttd_cli.erl +++ b/src/emqttd_cli.erl @@ -43,6 +43,8 @@ clients/1, sessions/1, plugins/1, listeners/1, vm/1, mnesia/1, trace/1]). +-export([node_name/1]). + -define(PROC_INFOKEYS, [status, memory, message_queue_len, diff --git a/src/emqttd_ctl.erl b/src/emqttd_ctl.erl index 86f7d8b3b..b02bab7ad 100644 --- a/src/emqttd_ctl.erl +++ b/src/emqttd_ctl.erl @@ -110,7 +110,13 @@ handle_call(_Request, _From, State) -> {reply, ok, State}. handle_cast({register_cmd, Cmd, MF, Opts}, State = #state{seq = Seq}) -> - ets:insert(?CMD_TAB, {{Seq, Cmd}, MF, Opts}), + case ets:match(?CMD_TAB, {{'$1', Cmd}, '_', '_'}) of + [] -> + ets:insert(?CMD_TAB, {{Seq, Cmd}, MF, Opts}); + [[OriginSeq] | _] -> + lager:warning("CLI: ~s is overidden by ~p", [Cmd, MF]), + ets:insert(?CMD_TAB, {{OriginSeq, Cmd}, MF, Opts}) + end, noreply(next_seq(State)); handle_cast({unregister_cmd, Cmd}, State) ->