From 0b9339105086246de0b1e6211006590039826ba1 Mon Sep 17 00:00:00 2001 From: turtled Date: Thu, 1 Dec 2016 10:39:14 +0800 Subject: [PATCH 1/5] fix issue#151 --- src/emqttd_session.erl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index f53f363a4..b6add0581 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -332,10 +332,16 @@ handle_cast({unsubscribe, TopicTable}, Session = #session{client_id = Client end, Subscriptions, TopicTable), hibernate(Session#session{subscriptions = Subscriptions1}); -handle_cast({destroy, ClientId}, Session = #session{client_id = ClientId}) -> +handle_cast({destroy, ClientId}, Session = #session{client_id = ClientId, client_pid = undefined}) -> ?LOG(warning, "destroyed", [], Session), shutdown(destroy, Session); +%% +handle_cast({destroy, ClientId}, Session = #session{client_id = ClientId, client_pid = OldClientPid}) -> + ?LOG(warning, "kickedout~p", [OldClientPid], Session), + shutdown(conflict, Session); + + handle_cast({resume, ClientId, ClientPid}, Session = #session{client_id = ClientId, client_pid = OldClientPid, clean_sess = CleanSess, From fc14f4a3b6fad4d228000fce001ac659037121b9 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Thu, 1 Dec 2016 15:18:05 +0800 Subject: [PATCH 2/5] rename route table --- src/emqttd_router.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/emqttd_router.erl b/src/emqttd_router.erl index bcbbb42e8..5a77c9914 100644 --- a/src/emqttd_router.erl +++ b/src/emqttd_router.erl @@ -284,11 +284,11 @@ code_change(_OldVsn, State, _Extra) -> clean_routes_(Node) -> Pattern = #mqtt_route{_ = '_', node = Node}, Clean = fun() -> - [mnesia:delete_object(route, R, write) || - R <- mnesia:match_object(route, Pattern, write)] + [mnesia:delete_object(mqtt_route, R, write) || + R <- mnesia:match_object(mqtt_route, Pattern, write)] end, mnesia:transaction(Clean). update_stats_() -> - emqttd_stats:setstats('routes/count', 'routes/max', mnesia:table_info(route, size)). + emqttd_stats:setstats('routes/count', 'routes/max', mnesia:table_info(mqtt_route, size)). From 281ab7b9293325763b75cd7bf810681d6ef00330 Mon Sep 17 00:00:00 2001 From: turtled Date: Thu, 1 Dec 2016 17:05:08 +0800 Subject: [PATCH 3/5] fixed stop appliaction error log --- src/emqttd.erl | 8 +++++++- src/emqttd_session.erl | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/emqttd.erl b/src/emqttd.erl index c360a5870..587a46306 100644 --- a/src/emqttd.erl +++ b/src/emqttd.erl @@ -22,7 +22,7 @@ -include("emqttd_protocol.hrl"). --export([start/0, env/1, env/2, is_running/1]). +-export([start/0, env/1, env/2, is_running/1, stop/0]). %% PubSub API -export([subscribe/1, subscribe/2, subscribe/3, publish/1, @@ -57,6 +57,12 @@ -spec(start() -> ok | {error, any()}). start() -> application:start(?APP). +%% @doc Stop emqttd application. +-spec(stop() -> ok | {error, any()}). +stop() -> + emqttd_plugins:unload(), + init:stop(). + %% @doc Environment -spec(env(Key:: atom()) -> {ok, any()} | undefined). env(Key) -> application:get_env(?APP, Key). diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index b6add0581..99de19d50 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -338,7 +338,7 @@ handle_cast({destroy, ClientId}, Session = #session{client_id = ClientId, client %% handle_cast({destroy, ClientId}, Session = #session{client_id = ClientId, client_pid = OldClientPid}) -> - ?LOG(warning, "kickedout~p", [OldClientPid], Session), + ?LOG(warning, "kicked out~p", [OldClientPid], Session), shutdown(conflict, Session); From 2181bd7850f4ea2783fa11dca609ab231b7a0c86 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Thu, 1 Dec 2016 19:12:45 +0800 Subject: [PATCH 4/5] unload --- src/emqttd.erl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/emqttd.erl b/src/emqttd.erl index 587a46306..8128d0789 100644 --- a/src/emqttd.erl +++ b/src/emqttd.erl @@ -14,7 +14,7 @@ %% limitations under the License. %%-------------------------------------------------------------------- -%% Facade Module for The EMQTT Broker +%% Facade Module for The EMQ Broker -module(emqttd). @@ -59,9 +59,7 @@ start() -> application:start(?APP). %% @doc Stop emqttd application. -spec(stop() -> ok | {error, any()}). -stop() -> - emqttd_plugins:unload(), - init:stop(). +stop() -> application:stop(?APP). %% @doc Environment -spec(env(Key:: atom()) -> {ok, any()} | undefined). From d62593a9c66fd4e15b5767957f93eec4fc8de5e5 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Fri, 2 Dec 2016 09:17:06 +0800 Subject: [PATCH 5/5] kickout --- src/emqttd_session.erl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index 99de19d50..2313cadb7 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -336,12 +336,10 @@ handle_cast({destroy, ClientId}, Session = #session{client_id = ClientId, client ?LOG(warning, "destroyed", [], Session), shutdown(destroy, Session); -%% handle_cast({destroy, ClientId}, Session = #session{client_id = ClientId, client_pid = OldClientPid}) -> - ?LOG(warning, "kicked out~p", [OldClientPid], Session), + ?LOG(warning, "kickout ~p", [OldClientPid], Session), shutdown(conflict, Session); - handle_cast({resume, ClientId, ClientPid}, Session = #session{client_id = ClientId, client_pid = OldClientPid, clean_sess = CleanSess,