From ded96a1df4ee3388b433b53592a725eae89492d5 Mon Sep 17 00:00:00 2001 From: geeksilva97 Date: Fri, 19 Apr 2024 10:35:14 -0300 Subject: [PATCH] handle iodata --- src/cowboy_req.erl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index b87991cb..456207eb 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -377,13 +377,17 @@ resp_headers_test() -> {<<"Name">>, <<"Cormano">>}, {<<"Name">>, <<"Paco">>}, {<<"X-MyHeader">>, <<"custom-header">>}, - {<<"api-key">>, "My api"}, - {<<"api-key">>, "KEY"} + {<<"game-name">>, "Sunset"}, + {<<"game-name">>, "Riders"}, + {<<"header">>, ["io", "data"]}, + {<<"header">>, ["header"]} ], #{}, Req), #{ <<"Name">> := <<"Cormano, Paco">>, - <<"X-MyHeader">> := <<"custom-header">> + <<"X-MyHeader">> := <<"custom-header">>, + <<"game-name">> := <<"Sunset, Riders">>, + <<"header">> := <<"iodata, header">> } = RespHeaders, ok. @@ -757,12 +761,14 @@ set_resp_headers_list(HeaderTupleList, Req) -> set_resp_headers_list([], Map, Req) -> set_resp_headers(Map, Req); -set_resp_headers_list([{<<"set-cookie">>, Value} | Headers], Map, Req) -> +set_resp_headers_list([{<<"set-cookie">>, _} | Headers], Map, Req) -> set_resp_headers_list(Headers, Map, Req); set_resp_headers_list([{Name, Value} | Headers], Map, Req) -> + BinaryValue = iolist_to_binary(Value), NewHeaderValue = case maps:get(Name, Map, undefined) of - undefined -> Value; - ExistingValue -> <> + undefined -> BinaryValue; + ExistingValue -> + <> end, Map1 = maps:put(Name, NewHeaderValue, Map),