# HG changeset patch # User Kim Alvefur # Date 1673181304 -3600 # Node ID 1cdaf21584daccb0e611ffe73b757a20d34ebcf5 # Parent fba795dd99c8eb44321ad5592c441651f9fe9c9a 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. diff -r fba795dd99c8 -r 1cdaf21584da net/http/server.lua --- a/net/http/server.lua Sun Jan 01 16:20:58 2023 +0100 +++ b/net/http/server.lua Sun Jan 08 13:35:04 2023 +0100 @@ -377,12 +377,12 @@ -- 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