diff options
author | Kim Alvefur <zash@zash.se> | 2023-01-08 13:35:04 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2023-01-08 13:35:04 +0100 |
commit | fe97c773a6b8e61c6aee0511e30164e2fbdd6091 (patch) | |
tree | fbbd4e52087390ee5fde64e7ff27231864f3cb8c /net/http | |
parent | 91a064bd4985f7bf826faacb9faa680088f9a453 (diff) | |
download | prosody-fe97c773a6b8e61c6aee0511e30164e2fbdd6091.tar.gz prosody-fe97c773a6b8e61c6aee0511e30164e2fbdd6091.zip |
net.http.server: Fix #1789
Unregistering the response before sending the trailer of the chunked
transfer encoding prevents opportunistic writes from being invoked and
running this code again when, which may cause an error when closing the
file handle a second time.
Normally the file size is known, so no chuck headers are sent.
Diffstat (limited to 'net/http')
-rw-r--r-- | net/http/server.lua | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/http/server.lua b/net/http/server.lua index 97e15e42..4ebf96a1 100644 --- a/net/http/server.lua +++ b/net/http/server.lua @@ -377,12 +377,12 @@ function _M.send_file(response, f) -- io.write("."); io.flush(); response.conn:write(chunk); else + incomplete[response.conn] = nil; if chunked then response.conn:write("0\r\n\r\n"); end -- io.write("\n"); if f.close then f:close(); end - incomplete[response.conn] = nil; return response:done(); end end |