forked from AkkomaGang/akkoma
Parse correctly content-type & do not forward content-length
This commit is contained in:
parent
b19597f602
commit
a2640c8088
1 changed files with 8 additions and 3 deletions
|
@ -2,7 +2,7 @@ defmodule Pleroma.ReverseProxy do
|
||||||
@keep_req_headers ~w(accept user-agent accept-encoding cache-control if-modified-since if-none-match range)
|
@keep_req_headers ~w(accept user-agent accept-encoding cache-control if-modified-since if-none-match range)
|
||||||
@resp_cache_headers ~w(etag date last-modified cache-control)
|
@resp_cache_headers ~w(etag date last-modified cache-control)
|
||||||
@keep_resp_headers @resp_cache_headers ++
|
@keep_resp_headers @resp_cache_headers ++
|
||||||
~w(content-type content-disposition content-length accept-ranges vary)
|
~w(content-type content-disposition accept-ranges vary)
|
||||||
@default_cache_control_header "public, max-age=1209600"
|
@default_cache_control_header "public, max-age=1209600"
|
||||||
@valid_resp_codes [200, 206, 304]
|
@valid_resp_codes [200, 206, 304]
|
||||||
@max_read_duration :timer.minutes(2)
|
@max_read_duration :timer.minutes(2)
|
||||||
|
@ -225,6 +225,12 @@ defp downcase_headers(headers) do
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp get_content_type(headers) do
|
||||||
|
{_, content_type} = List.keyfind(headers, "content-type", 0, {"content-type", "application/octet-stream"})
|
||||||
|
[content_type | _] = String.split(content_type, ";")
|
||||||
|
content_type
|
||||||
|
end
|
||||||
|
|
||||||
defp put_resp_headers(conn, headers) do
|
defp put_resp_headers(conn, headers) do
|
||||||
Enum.reduce(headers, conn, fn {k, v}, conn ->
|
Enum.reduce(headers, conn, fn {k, v}, conn ->
|
||||||
put_resp_header(conn, k, v)
|
put_resp_header(conn, k, v)
|
||||||
|
@ -274,8 +280,7 @@ defp build_resp_cache_headers(headers, opts) do
|
||||||
defp build_resp_content_disposition_header(headers, opts) do
|
defp build_resp_content_disposition_header(headers, opts) do
|
||||||
opt = Keyword.get(opts, :inline_content_types, @inline_content_types)
|
opt = Keyword.get(opts, :inline_content_types, @inline_content_types)
|
||||||
|
|
||||||
{_, content_type} =
|
content_type = get_content_type(headers)
|
||||||
List.keyfind(headers, "content-type", 0, {"content-type", "application/octect-stream"})
|
|
||||||
|
|
||||||
attachment? =
|
attachment? =
|
||||||
cond do
|
cond do
|
||||||
|
|
Loading…
Reference in a new issue