'' -> '%u', '' -> '%c'
This commit is contained in:
parent
6ceb1c6718
commit
66c84aef00
|
@ -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]).
|
||||||
|
|
|
@ -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).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue