'' -> '%u', '' -> '%c'

This commit is contained in:
Feng Lee 2016-09-09 17:00:12 +08:00
parent 6ceb1c6718
commit 66c84aef00
2 changed files with 14 additions and 14 deletions

View File

@ -75,8 +75,8 @@ compile(topic, Topic) ->
end. end.
'pattern?'(Words) -> 'pattern?'(Words) ->
lists:member(<<"$u">>, Words) lists:member(<<"%u">>, Words)
orelse lists:member(<<"$c">>, Words). orelse lists:member(<<"%c">>, Words).
bin(L) when is_list(L) -> bin(L) when is_list(L) ->
list_to_binary(L); list_to_binary(L);
@ -142,13 +142,13 @@ feed_var(Client, Pattern) ->
feed_var(Client, Pattern, []). feed_var(Client, Pattern, []).
feed_var(_Client, [], Acc) -> feed_var(_Client, [], Acc) ->
lists:reverse(Acc); lists:reverse(Acc);
feed_var(Client = #mqtt_client{client_id = undefined}, [<<"$c">>|Words], Acc) -> feed_var(Client = #mqtt_client{client_id = undefined}, [<<"%c">>|Words], Acc) ->
feed_var(Client, Words, [<<"$c">>|Acc]); feed_var(Client, Words, [<<"%c">>|Acc]);
feed_var(Client = #mqtt_client{client_id = ClientId}, [<<"$c">>|Words], Acc) -> feed_var(Client = #mqtt_client{client_id = ClientId}, [<<"%c">>|Words], Acc) ->
feed_var(Client, Words, [ClientId |Acc]); feed_var(Client, Words, [ClientId |Acc]);
feed_var(Client = #mqtt_client{username = undefined}, [<<"$u">>|Words], Acc) -> feed_var(Client = #mqtt_client{username = undefined}, [<<"%u">>|Words], Acc) ->
feed_var(Client, Words, [<<"$u">>|Acc]); feed_var(Client, Words, [<<"%u">>|Acc]);
feed_var(Client = #mqtt_client{username = Username}, [<<"$u">>|Words], Acc) -> feed_var(Client = #mqtt_client{username = Username}, [<<"%u">>|Words], Acc) ->
feed_var(Client, Words, [Username|Acc]); feed_var(Client, Words, [Username|Acc]);
feed_var(Client, [W|Words], Acc) -> feed_var(Client, [W|Words], Acc) ->
feed_var(Client, Words, [W|Acc]). feed_var(Client, Words, [W|Acc]).

View File

@ -32,7 +32,7 @@ on_client_connected(?CONNACK_ACCEPT, Client = #mqtt_client{client_id = ClientId
client_pid = ClientPid, client_pid = ClientPid,
username = Username}, Topics) -> username = Username}, Topics) ->
Replace = fun(Topic) -> rep(<<"$u">>, Username, rep(<<"$c">>, ClientId, Topic)) end, Replace = fun(Topic) -> rep(<<"%u">>, Username, rep(<<"%c">>, ClientId, Topic)) end,
TopicTable = [{Replace(Topic), Qos} || {Topic, Qos} <- Topics], TopicTable = [{Replace(Topic), Qos} || {Topic, Qos} <- Topics],
emqttd_client:subscribe(ClientPid, TopicTable), emqttd_client:subscribe(ClientPid, TopicTable),
{ok, Client}; {ok, Client};
@ -43,10 +43,10 @@ on_client_connected(_ConnAck, _Client, _State) ->
unload(_Opts) -> unload(_Opts) ->
emqttd:unhook('client.connected', fun ?MODULE:on_client_connected/3). emqttd:unhook('client.connected', fun ?MODULE:on_client_connected/3).
rep(<<"$c">>, ClientId, Topic) -> rep(<<"%c">>, ClientId, Topic) ->
emqttd_topic:feed_var(<<"$c">>, ClientId, Topic); emqttd_topic:feed_var(<<"%c">>, ClientId, Topic);
rep(<<"$u">>, undefined, Topic) -> rep(<<"%u">>, undefined, Topic) ->
Topic; Topic;
rep(<<"$u">>, Username, Topic) -> rep(<<"%u">>, Username, Topic) ->
emqttd_topic:feed_var(<<"$u">>, Username, Topic). emqttd_topic:feed_var(<<"%u">>, Username, Topic).