summaryrefslogtreecommitdiffhomepage
path: root/libs/lucid-http/luasrc/lucid/http/server.lua
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2009-11-02 15:40:53 +0000
committerSteven Barth <steven@midlink.org>2009-11-02 15:40:53 +0000
commitffae6adf662a943a73430b8156b47005f987cb0d (patch)
tree0c613841ea7746301e985c3829d5b9abc5953373 /libs/lucid-http/luasrc/lucid/http/server.lua
parentc45930e05e7de9fcb572c063fb503e6c98e53272 (diff)
Avoid lacking fds
Diffstat (limited to 'libs/lucid-http/luasrc/lucid/http/server.lua')
-rw-r--r--libs/lucid-http/luasrc/lucid/http/server.lua7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/lucid-http/luasrc/lucid/http/server.lua b/libs/lucid-http/luasrc/lucid/http/server.lua
index bc8d53168c..fd5f7cdd8b 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