diff options
Diffstat (limited to 'libs/lucittpd/luasrc/ttpd/module.lua')
-rw-r--r-- | libs/lucittpd/luasrc/ttpd/module.lua | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/libs/lucittpd/luasrc/ttpd/module.lua b/libs/lucittpd/luasrc/ttpd/module.lua deleted file mode 100644 index 1a7c574733..0000000000 --- a/libs/lucittpd/luasrc/ttpd/module.lua +++ /dev/null @@ -1,121 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -local pcall, ipairs, tonumber, type, next = pcall, ipairs, tonumber, type, next -local util = require "luci.util" -local http = require "luci.http.protocol" -local ltn12 = require "luci.ltn12" -local table = require "table" - -module "luci.ttpd.module" - - --- Server handler implementation -Handler = util.class() - --- Constructor -function Handler.__init__(self) - self.handler = {} - self.filters = {} - self.modifiers = {} -end - --- Add a filter -function Handler.setfilter(self, filter, key) - self.filters[(key) or (#self.filters+1)] = filter -end - --- Add a modifier -function Handler.setmodifier(self, modifier, key) - self.modifiers[(pos) or (#self.modifiers+1)] = modifier -end - --- Creates a failure reply -function Handler.failure(self, code, message) - local response = Response(code, { ["Content-Type"] = "text/plain" }) - local sourceout = ltn12.source.string(message) - - return response, sourceout -end - --- Processes a request -function Handler.process(self, request, sourcein, sinkerr) - local stat, response, sourceout - - -- Detect request Method - local hname = "handle_" .. request.request_method - if self[hname] then - local t = { - processor = self[hname], - handler = self, - request = request, - sourcein = sourcein, - sinkerr = sinkerr - } - - if next(self.modifiers) then - for _, mod in util.kspairs(self.modifiers) do - mod(t) - end - end - - -- Run the handler - stat, response, sourceout = pcall( - t.processor, t.handler, t.request, t.sourcein, t.sinkerr - ) - - -- Check for any errors - if not stat then - response, sourceout = self:failure(500, response) - elseif next(self.filters) then - local t = { - response = response, - sourceout = sourceout, - sinkerr = t.sinkerr - } - - for _, filter in util.kspairs(self.filters) do - filter(t) - end - - response = t.response - sourceout = t.sourceout - end - else - response, sourceout = self:failure(405, http.protocol.statusmsg[405]) - end - - -- Check data - if not util.instanceof(response, Response) then - response, sourceout = self:failure(500, "Core error: Invalid module response!") - end - - return response, sourceout -end - --- Handler Response -Response = util.class() - -function Response.__init__(self, status, headers) - self.status = tonumber(status) or 200 - self.headers = (type(headers) == "table") and headers or {} -end - -function Response.addheader(self, key, value) - self.headers[key] = value -end - -function Response.setstatus(self, status) - self.status = status -end
\ No newline at end of file |