end
if stat then
+ request.env.HTTP_AUTH_USER, request.env.HTTP_AUTH_PASS = user, pass
return
end
end
-- Call URI part
request.env.PATH_INFO = uri
+ if self.default and uri == "/" then
+ return 302, {Location = self.default}
+ end
+
for k, h in pairs(self.handlers) do
if #k > hlen then
if uri == k or (uri:sub(1, #k) == k and uri:byte(#k+1) == sc) then
if close then
headers["Connection"] = "close"
- elseif message.env.SERVER_PROTOCOL == "HTTP/1.0" then
+ else
headers["Connection"] = "Keep-Alive"
- end
+ headers["Keep-Alive"] = "timeout=5, max=50"
+ end
headers["Date"] = date.to_http(os.time())
local header = {
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
if sourceout then
stat, msg = ltn12.pump.all(sourceout, sinkout)
end
+
+ if closefd then
+ closefd:close()
+ end
end