Avoid lacking fds
This commit is contained in:
parent
c45930e05e
commit
ffae6adf66
2 changed files with 8 additions and 0 deletions
|
@ -559,11 +559,14 @@ function Server.process(self, client, env)
|
||||||
stat, code, msg = client:writeall(table.concat(header, "\r\n"))
|
stat, code, msg = client:writeall(table.concat(header, "\r\n"))
|
||||||
|
|
||||||
if sourceout and stat then
|
if sourceout and stat then
|
||||||
|
local closefd
|
||||||
if util.instanceof(sourceout, IOResource) then
|
if util.instanceof(sourceout, IOResource) then
|
||||||
if not headers["Transfer-Encoding"] then
|
if not headers["Transfer-Encoding"] then
|
||||||
stat, code, msg = sourceout.fd:copyz(client, sourceout.len)
|
stat, code, msg = sourceout.fd:copyz(client, sourceout.len)
|
||||||
|
closefd = sourceout.fd
|
||||||
sourceout = nil
|
sourceout = nil
|
||||||
else
|
else
|
||||||
|
closefd = sourceout.fd
|
||||||
sourceout = sourceout.fd:blocksource(nil, sourceout.len)
|
sourceout = sourceout.fd:blocksource(nil, sourceout.len)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -571,6 +574,10 @@ function Server.process(self, client, env)
|
||||||
if sourceout then
|
if sourceout then
|
||||||
stat, msg = ltn12.pump.all(sourceout, sinkout)
|
stat, msg = ltn12.pump.all(sourceout, sinkout)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if closefd then
|
||||||
|
closefd:close()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -87,6 +87,7 @@ function run()
|
||||||
active = false
|
active = false
|
||||||
elseif id == 6 then
|
elseif id == 6 then
|
||||||
data1:copyz(nixio.stdout, data2)
|
data1:copyz(nixio.stdout, data2)
|
||||||
|
data1:close()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue