From 79c1b7eb78ff53f2ce1da0fa047872c432d1e450 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Tue, 14 May 2019 10:22:30 +0800 Subject: [PATCH] Put sockname to credentials (#2532) * Add sockname to credentials * Explicit credentials type define --- src/emqx_protocol.erl | 7 ++++++- src/emqx_types.erl | 14 +++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/emqx_protocol.erl b/src/emqx_protocol.erl index e5ca486cc..71bf1bc08 100644 --- a/src/emqx_protocol.erl +++ b/src/emqx_protocol.erl @@ -40,6 +40,7 @@ -record(pstate, { zone, sendfun, + sockname, peername, peercert, proto_ver, @@ -87,12 +88,14 @@ %%------------------------------------------------------------------------------ -spec(init(map(), list()) -> state()). -init(SocketOpts = #{ peername := Peername +init(SocketOpts = #{ sockname := Sockname + , peername := Peername , peercert := Peercert , sendfun := SendFun}, Options) -> Zone = proplists:get_value(zone, Options), #pstate{zone = Zone, sendfun = SendFun, + sockname = Sockname, peername = Peername, peercert = Peercert, proto_ver = ?MQTT_PROTO_V4, @@ -208,11 +211,13 @@ client_id(#pstate{client_id = ClientId}) -> credentials(#pstate{zone = Zone, client_id = ClientId, username = Username, + sockname = Sockname, peername = Peername, peercert = Peercert, ws_cookie = WsCookie}) -> with_cert(#{zone => Zone, client_id => ClientId, + sockname => Sockname, username => Username, peername => Peername, ws_cookie => WsCookie, diff --git a/src/emqx_types.erl b/src/emqx_types.erl index 021609dc8..2d41a0690 100644 --- a/src/emqx_types.erl +++ b/src/emqx_types.erl @@ -80,11 +80,15 @@ | banned | bad_authentication_method). -type(protocol() :: mqtt | 'mqtt-sn' | coap | stomp | none | atom()). --type(credentials() :: #{client_id := client_id(), - username := username(), - peername := peername(), - auth_result := auth_result(), - zone => zone(), +-type(credentials() :: #{zone := zone(), + client_id := client_id(), + username := username(), + sockname := peername(), + peername := peername(), + ws_cookie := undefined | list(), + mountpoint := binary(), + password => binary(), + auth_result => auth_result(), atom() => term() }). -type(subscription() :: #subscription{}).