Skip to content

Commit 20bb717

Browse files
author
hhaensel
committed
Fix headers handling for Julia 1.10 compatibility
Use union! with append! on headers.entries instead of push! or append! directly on headers. This works consistently across Julia 1.10 and 1.12 where the push! behavior differs.
1 parent 2f8f2fd commit 20bb717

2 files changed

Lines changed: 5 additions & 8 deletions

File tree

src/Renderer.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ function respond(r::WebRenderable) :: HTTP.Response
294294
if haskey(Genie.Router.params(), Genie.Router.PARAMS_RESPONSE_KEY)
295295
params_resp = Genie.Router.params(Genie.Router.PARAMS_RESPONSE_KEY)
296296
# Merge headers from params response (e.g., Set-Cookie from sessions)
297-
append!(r.headers, params_resp.headers)
297+
union!(append!(r.headers.entries, HTTP.mkheaders(params_resp.headers)))
298298
end
299299

300300
HTTP.Response(r.status, r.headers, body = r.body)

src/Responses.jl

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,16 @@ function getheaders() :: HTTP.Headers
2323
end
2424

2525

26-
function setheaders!(res::HTTP.Response, headers::Dict) :: HTTP.Response
27-
push!(res.headers, [headers...]...)
26+
function setheaders!(res::HTTP.Response, headers) :: HTTP.Response
27+
union!(append!(res.headers.entries, HTTP.mkheaders(headers)))
2828

2929
res
3030
end
31-
function setheaders(headers::Dict) :: HTTP.Response
31+
function setheaders(headers) :: HTTP.Response
3232
setheaders!(getresponse(), headers)
3333
end
3434
function setheaders(header::Pair{String,String}) :: HTTP.Response
35-
setheaders(Dict(header))
36-
end
37-
function setheaders(headers::Vector{Pair{String,String}}) :: HTTP.Response
38-
setheaders(Dict(headers...))
35+
setheaders([header])
3936
end
4037

4138

0 commit comments

Comments
 (0)