From aad1f3547f6d59e698d4524c6291f5c65c89028d Mon Sep 17 00:00:00 2001 From: Feng Date: Sat, 10 Oct 2015 19:47:38 +0800 Subject: [PATCH 1/3] 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) -> From 7af13af8480f92ac622deb2f07b8caa4e05d838e Mon Sep 17 00:00:00 2001 From: Feng Date: Sat, 10 Oct 2015 19:56:43 +0800 Subject: [PATCH 2/3] warning --- src/emqttd_ctl.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emqttd_ctl.erl b/src/emqttd_ctl.erl index 7a588a33d..b02bab7ad 100644 --- a/src/emqttd_ctl.erl +++ b/src/emqttd_ctl.erl @@ -114,7 +114,7 @@ handle_cast({register_cmd, Cmd, MF, Opts}, State = #state{seq = Seq}) -> [] -> ets:insert(?CMD_TAB, {{Seq, Cmd}, MF, Opts}); [[OriginSeq] | _] -> - lager:error("CLI: ~s is overidden by ~p", [Cmd, MF]), + lager:warning("CLI: ~s is overidden by ~p", [Cmd, MF]), ets:insert(?CMD_TAB, {{OriginSeq, Cmd}, MF, Opts}) end, noreply(next_seq(State)); From 6bc3e70f4696059b78caed9cefe184226b1a0a90 Mon Sep 17 00:00:00 2001 From: Feng Date: Sat, 10 Oct 2015 20:12:24 +0800 Subject: [PATCH 3/3] export node_name/1 --- src/emqttd_cli.erl | 2 ++ 1 file changed, 2 insertions(+) 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,