Avoid lacking fds

This commit is contained in:
Steven Barth 2009-11-02 15:40:53 +00:00
parent c45930e05e
commit ffae6adf66
2 changed files with 8 additions and 0 deletions

View file

@ -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

View file

@ -87,6 +87,7 @@ function run()
active = false
elseif id == 6 then
data1:copyz(nixio.stdout, data2)
data1:close()
end
end
end