Feng 10 лет назад
Родитель
Сommit
aad1f3547f
1 измененных файлов с 7 добавлено и 1 удалено
  1. 7 1
      src/emqttd_ctl.erl

+ 7 - 1
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) ->