From 88797062a459a08bd1bc12989f87be7e198c8d72 Mon Sep 17 00:00:00 2001 From: turtled Date: Sat, 1 Jul 2017 17:51:55 +0800 Subject: [PATCH] Add function restart_listener --- src/emqttd_app.erl | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/emqttd_app.erl b/src/emqttd_app.erl index 7709d134f..ad52416df 100644 --- a/src/emqttd_app.erl +++ b/src/emqttd_app.erl @@ -27,7 +27,7 @@ %% Application callbacks -export([start/2, stop/1]). --export([start_listener/1, stop_listener/1]). +-export([start_listener/1, stop_listener/1, restart_listener/1]). -type(listener() :: {atom(), esockd:listen_on(), [esockd:option()]}). @@ -205,6 +205,21 @@ stop_listener({Proto, ListenOn, _Opts}) when Proto == api -> stop_listener({Proto, ListenOn, _Opts}) -> esockd:close(Proto, ListenOn). +%% @doc Restart Listeners +restart_listener({tcp, ListenOn, _Opts}) -> + esockd:reopen('mqtt:tcp', ListenOn); +restart_listener({ssl, ListenOn, _Opts}) -> + esockd:reopen('mqtt:ssl', ListenOn); +restart_listener({Proto, ListenOn, _Opts}) when Proto == http; Proto == ws -> + mochiweb:restart_http('mqtt:ws', ListenOn); +restart_listener({Proto, ListenOn, _Opts}) when Proto == https; Proto == wss -> + mochiweb:restart_http('mqtt:wss', ListenOn); +restart_listener({Proto, ListenOn, _Opts}) when Proto == api -> + mochiweb:restart_http('mqtt:api', ListenOn); +restart_listener({Proto, ListenOn, _Opts}) -> + esockd:reopen(Proto, ListenOn). + + -ifdef(TEST). -include_lib("eunit/include/eunit.hrl"). merge_sockopts_test_() ->