X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=libs%2Flucid-http%2Fluasrc%2Flucid%2Fhttp%2Fserver.lua;h=fd5f7cdd8bf9d97c3be01a1b80040ae9076177a4;hp=bc8d53168c95be125764e365b3dc77882352b2e9;hb=2d05a6135a0d29a82148f9bfc215b2de5b609dd5;hpb=92bbfc8ca837a6c447fc8402789123cfa81c92ed diff --git a/libs/lucid-http/luasrc/lucid/http/server.lua b/libs/lucid-http/luasrc/lucid/http/server.lua index bc8d53168..fd5f7cdd8 100644 --- a/libs/lucid-http/luasrc/lucid/http/server.lua +++ b/libs/lucid-http/luasrc/lucid/http/server.lua @@ -559,11 +559,14 @@ function Server.process(self, client, env) stat, code, msg = client:writeall(table.concat(header, "\r\n")) if sourceout and stat then + local closefd if util.instanceof(sourceout, IOResource) then if not headers["Transfer-Encoding"] then stat, code, msg = sourceout.fd:copyz(client, sourceout.len) + closefd = sourceout.fd sourceout = nil else + closefd = sourceout.fd sourceout = sourceout.fd:blocksource(nil, sourceout.len) end end @@ -571,6 +574,10 @@ function Server.process(self, client, env) if sourceout then stat, msg = ltn12.pump.all(sourceout, sinkout) end + + if closefd then + closefd:close() + end end