|
|
@@ -66,7 +66,7 @@
|
|
|
connected_at,
|
|
|
ignore_loop,
|
|
|
topic_alias_maximum,
|
|
|
- socktype
|
|
|
+ conn_mod
|
|
|
}).
|
|
|
|
|
|
-opaque(state() :: #pstate{}).
|
|
|
@@ -83,9 +83,9 @@
|
|
|
%%------------------------------------------------------------------------------
|
|
|
|
|
|
-spec(init(map(), list()) -> state()).
|
|
|
-init(#{peername := Peername, peercert := Peercert, sendfun := SendFun}, Options) ->
|
|
|
+init(SocketOpts = #{peername := Peername, peercert := Peercert, sendfun := SendFun}, Options) ->
|
|
|
+ ConnMod = maps:get(conn_mod, SocketOpts),
|
|
|
Zone = proplists:get_value(zone, Options),
|
|
|
- SockType = proplists:get_value(socktype, Options, tcp),
|
|
|
#pstate{zone = Zone,
|
|
|
sendfun = SendFun,
|
|
|
peername = Peername,
|
|
|
@@ -110,7 +110,7 @@ init(#{peername := Peername, peercert := Peercert, sendfun := SendFun}, Options)
|
|
|
connected = false,
|
|
|
ignore_loop = emqx_config:get_env(mqtt_ignore_loop_deliver, false),
|
|
|
topic_alias_maximum = #{to_client => 0, from_client => 0},
|
|
|
- socktype = SockType}.
|
|
|
+ conn_mod = ConnMod}.
|
|
|
|
|
|
init_username(Peercert, Options) ->
|
|
|
case proplists:get_value(peer_cert_as_username, Options) of
|
|
|
@@ -153,7 +153,7 @@ attrs(#pstate{zone = Zone,
|
|
|
is_super = IsSuper,
|
|
|
is_bridge = IsBridge,
|
|
|
connected_at = ConnectedAt,
|
|
|
- socktype = SockType}) ->
|
|
|
+ conn_mod = ConnMod}) ->
|
|
|
[{zone, Zone},
|
|
|
{client_id, ClientId},
|
|
|
{username, Username},
|
|
|
@@ -167,7 +167,7 @@ attrs(#pstate{zone = Zone,
|
|
|
{is_super, IsSuper},
|
|
|
{is_bridge, IsBridge},
|
|
|
{connected_at, ConnectedAt},
|
|
|
- {socktype, SockType}].
|
|
|
+ {conn_mod, ConnMod}].
|
|
|
|
|
|
attr(max_inflight, #pstate{proto_ver = ?MQTT_PROTO_V5, conn_props = ConnProps}) ->
|
|
|
get_property('Receive-Maximum', ConnProps, 65535);
|