Merge pull request #11859 from cisiqo/patch-1

fix content type returned by Stomp
This commit is contained in:
Ivan Dyachkov 2023-11-03 08:21:08 +01:00 committed by GitHub
commit fdbf439df8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 6 deletions

View File

@ -1052,9 +1052,16 @@ handle_deliver(
_ ->
Headers0
end,
Headers2 = lists:foldl(
fun({Key, _Val} = KV, Acc1) ->
lists:keystore(Key, 1, Acc1, KV)
end,
Headers1,
maps:get(stomp_headers, Headers, [])
),
Frame = #stomp_frame{
command = <<"MESSAGE">>,
headers = Headers1 ++ maps:get(stomp_headers, Headers, []),
headers = Headers2,
body = Payload
},
[Frame | Acc];
@ -1160,12 +1167,12 @@ do_negotiate_version(Accepts) ->
lists:reverse(lists:sort(binary:split(Accepts, <<",">>, [global])))
).
do_negotiate_version(Ver, []) ->
{error, <<"Supported protocol versions < ", Ver/binary>>};
do_negotiate_version(Ver, [AcceptVer | _]) when Ver >= AcceptVer ->
{ok, AcceptVer};
do_negotiate_version(Ver, [_ | T]) ->
do_negotiate_version(Ver, T).
do_negotiate_version(Ver, T);
do_negotiate_version(Ver, _) ->
{error, <<"Supported protocol versions < ", Ver/binary>>}.
header(Name, Headers) ->
get_value(Name, Headers).
@ -1227,7 +1234,6 @@ frame2message(
[
<<"destination">>,
<<"content-length">>,
<<"content-type">>,
<<"transaction">>,
<<"receipt">>
]

View File

@ -181,11 +181,15 @@ t_subscribe(_) ->
%% 'user-defined' header will be retain
ok = send_message_frame(Sock, <<"/queue/foo">>, <<"hello">>, [
{<<"user-defined">>, <<"emq">>}
{<<"user-defined">>, <<"emq">>},
{<<"content-type">>, <<"text/html">>}
]),
?assertMatch({ok, #stomp_frame{command = <<"RECEIPT">>}}, recv_a_frame(Sock)),
{ok, Frame} = recv_a_frame(Sock),
?assertEqual(
<<"text/html">>, proplists:get_value(<<"content-type">>, Frame#stomp_frame.headers)
),
?assertMatch(
#stomp_frame{
@ -977,6 +981,10 @@ t_mountpoint(_) ->
}} = recv_a_frame(Sock),
?assertEqual(<<"t/a">>, proplists:get_value(<<"destination">>, Headers)),
?assertEqual(
<<"text/plain">>, proplists:get_value(<<"content-type">>, Headers)
),
ok = send_disconnect_frame(Sock)
end,