From 74d0ef9a954bbc24d62832d24f0cd6c00f9ab712 Mon Sep 17 00:00:00 2001 From: Feng Date: Fri, 18 Sep 2015 10:09:10 +0800 Subject: [PATCH] fix issue #297 - support variable --- src/emqttd_mod_autosub.erl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/emqttd_mod_autosub.erl b/src/emqttd_mod_autosub.erl index 7285920e6..a1c8d1649 100644 --- a/src/emqttd_mod_autosub.erl +++ b/src/emqttd_mod_autosub.erl @@ -45,8 +45,16 @@ load(Opts) -> {?MODULE, client_connected, [Topics]}), {ok, #state{topics = Topics}}. -client_connected(?CONNACK_ACCEPT, #mqtt_client{client_id = ClientId, client_pid = ClientPid}, Topics) -> - F = fun(Topic) -> emqttd_topic:feed_var(<<"$c">>, ClientId, Topic) end, +client_connected(?CONNACK_ACCEPT, #mqtt_client{client_id = ClientId, + client_pid = ClientPid, + username = Username}, Topics) -> + F = fun(Topic) -> + Topic1 = emqttd_topic:feed_var(<<"$c">>, ClientId, Topic), + if + Username =:= undefined -> Topic1; + true -> emqttd_topic:feed_var(<<"$u">>, Username, Topic1) + end + end, emqttd_client:subscribe(ClientPid, [{F(Topic), Qos} || {Topic, Qos} <- Topics]); client_connected(_ConnAck, _Client, _Topics) ->