From aad1f3547f6d59e698d4524c6291f5c65c89028d Mon Sep 17 00:00:00 2001 From: Feng Date: Sat, 10 Oct 2015 19:47:38 +0800 Subject: [PATCH] allow to override command --- src/emqttd_ctl.erl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/emqttd_ctl.erl b/src/emqttd_ctl.erl index 86f7d8b3b..7a588a33d 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:error("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) ->