From b26455a51264983106224539fc0fb8517e2a5548 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Fri, 27 May 2016 17:32:34 +0800 Subject: [PATCH] ListenOn --- src/emqttd_app.erl | 21 +++++++++++---------- src/emqttd_cli.erl | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/emqttd_app.erl b/src/emqttd_app.erl index 0086e06f0..42cc35daa 100644 --- a/src/emqttd_app.erl +++ b/src/emqttd_app.erl @@ -33,7 +33,7 @@ {backlog, 512}, {nodelay, true}]). --type listener() :: {atom(), inet:port_number(), [esockd:option()]}. +-type listener() :: {atom(), esockd:listen_on(), [esockd:option()]}. %%-------------------------------------------------------------------- %% Application callbacks @@ -172,22 +172,22 @@ start_listeners() -> lists:foreach(fun start_listener/1, emqttd:env(listeners)). %% Start mqtt listener -spec(start_listener(listener()) -> any()). -start_listener({mqtt, Port, Opts}) -> start_listener(mqtt, Port, Opts); +start_listener({mqtt, ListenOn, Opts}) -> start_listener(mqtt, ListenOn, Opts); %% Start mqtt(SSL) listener -start_listener({mqtts, Port, Opts}) -> start_listener(mqtts, Port, Opts); +start_listener({mqtts, ListenOn, Opts}) -> start_listener(mqtts, ListenOn, Opts); %% Start http listener -start_listener({http, Port, Opts}) -> - mochiweb:start_http(Port, Opts, {emqttd_http, handle_request, []}); +start_listener({http, ListenOn, Opts}) -> + mochiweb:start_http(http, ListenOn, Opts, {emqttd_http, handle_request, []}); %% Start https listener -start_listener({https, Port, Opts}) -> - mochiweb:start_http(Port, Opts, {emqttd_http, handle_request, []}). +start_listener({https, ListenOn, Opts}) -> + mochiweb:start_http(https, ListenOn, Opts, {emqttd_http, handle_request, []}). -start_listener(Protocol, Port, Opts) -> +start_listener(Protocol, ListenOn, Opts) -> MFArgs = {emqttd_client, start_link, [emqttd:env(mqtt)]}, - esockd:open(Protocol, Port, merge_sockopts(Opts), MFArgs). + esockd:open(Protocol, ListenOn, merge_sockopts(Opts), MFArgs). merge_sockopts(Options) -> SockOpts = emqttd_opts:merge(?MQTT_SOCKOPTS, @@ -201,5 +201,6 @@ merge_sockopts(Options) -> %% @doc Stop Listeners stop_listeners() -> lists:foreach(fun stop_listener/1, emqttd:env(listeners)). -stop_listener({Protocol, Port, _Opts}) -> esockd:close({Protocol, Port}). +%% @private +stop_listener({Protocol, ListenOn, _Opts}) -> esockd:close(Protocol, ListenOn). diff --git a/src/emqttd_cli.erl b/src/emqttd_cli.erl index bcc68e5cf..a64f086ed 100644 --- a/src/emqttd_cli.erl +++ b/src/emqttd_cli.erl @@ -453,12 +453,12 @@ trace_off(Who, Name) -> %%-------------------------------------------------------------------- %% @doc Listeners Command listeners([]) -> - foreach(fun({{Protocol, Port}, Pid}) -> + foreach(fun({{Protocol, ListenOn}, Pid}) -> Info = [{acceptors, esockd:get_acceptors(Pid)}, {max_clients, esockd:get_max_clients(Pid)}, {current_clients,esockd:get_current_clients(Pid)}, {shutdown_count, esockd:get_shutdown_count(Pid)}], - ?PRINT("listener on ~s:~w~n", [Protocol, Port]), + ?PRINT("listener on ~s:~s~n", [Protocol, esockd:to_string(ListenOn)]), foreach(fun({Key, Val}) -> ?PRINT(" ~-16s: ~w~n", [Key, Val]) end, Info)