parent
206b7ac4a9
commit
8302cac329
|
@ -1341,7 +1341,7 @@ process_alias(Packet = #mqtt_packet{
|
|||
{ok, Topic} ->
|
||||
NPublish = Publish#mqtt_packet_publish{topic_name = Topic},
|
||||
{ok, Packet#mqtt_packet{variable = NPublish}, Channel};
|
||||
false -> {error, ?RC_PROTOCOL_ERROR}
|
||||
error -> {error, ?RC_PROTOCOL_ERROR}
|
||||
end;
|
||||
|
||||
process_alias(#mqtt_packet{
|
||||
|
@ -1685,7 +1685,7 @@ run_hooks(Name, Args, Acc) ->
|
|||
|
||||
-compile({inline, [find_alias/3, save_alias/4]}).
|
||||
|
||||
find_alias(_, _, undefined) -> false;
|
||||
find_alias(_, _, undefined) -> error;
|
||||
find_alias(inbound, AliasId, _TopicAliases = #{inbound := Aliases}) ->
|
||||
maps:find(AliasId, Aliases);
|
||||
find_alias(outbound, Topic, _TopicAliases = #{outbound := Aliases}) ->
|
||||
|
@ -1739,4 +1739,3 @@ flag(false) -> 0.
|
|||
set_field(Name, Value, Channel) ->
|
||||
Pos = emqx_misc:index_of(Name, record_info(fields, channel)),
|
||||
setelement(Pos+1, Channel, Value).
|
||||
|
||||
|
|
|
@ -674,6 +674,13 @@ t_process_alias(_) ->
|
|||
{ok, #mqtt_packet{variable = #mqtt_packet_publish{topic_name = <<"t">>}}, _Chan} =
|
||||
emqx_channel:process_alias(#mqtt_packet{variable = Publish}, Channel).
|
||||
|
||||
t_process_alias_inexistent_alias(_) ->
|
||||
Publish = #mqtt_packet_publish{topic_name = <<>>, properties = #{'Topic-Alias' => 1}},
|
||||
Channel = channel(),
|
||||
?assertEqual(
|
||||
{error, ?RC_PROTOCOL_ERROR},
|
||||
emqx_channel:process_alias(#mqtt_packet{variable = Publish}, Channel)).
|
||||
|
||||
t_packing_alias(_) ->
|
||||
Packet1 = #mqtt_packet{variable = #mqtt_packet_publish{
|
||||
topic_name = <<"x">>,
|
||||
|
@ -710,6 +717,20 @@ t_packing_alias(_) ->
|
|||
#mqtt_packet{variable = #mqtt_packet_publish{topic_name = <<"z">>}},
|
||||
channel())).
|
||||
|
||||
t_packing_alias_inexistent_alias(_) ->
|
||||
Publish = #mqtt_packet_publish{topic_name = <<>>, properties = #{'Topic-Alias' => 1}},
|
||||
Channel = channel(),
|
||||
Packet = #mqtt_packet{variable = Publish},
|
||||
ExpectedChannel = emqx_channel:set_field(
|
||||
topic_aliases,
|
||||
#{ inbound => #{}
|
||||
, outbound => #{<<>> => 1}
|
||||
},
|
||||
Channel),
|
||||
?assertEqual(
|
||||
{Packet, ExpectedChannel},
|
||||
emqx_channel:packing_alias(Packet, Channel)).
|
||||
|
||||
t_check_pub_acl(_) ->
|
||||
ok = meck:expect(emqx_zone, enable_acl, fun(_) -> true end),
|
||||
Publish = ?PUBLISH_PACKET(?QOS_0, <<"t">>, 1, <<"payload">>),
|
||||
|
|
Loading…
Reference in New Issue