diff options
author | Steven Barth <steven@midlink.org> | 2009-06-14 08:51:43 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2009-06-14 08:51:43 +0000 |
commit | c47be2e727d1bb3e2e3aa415ec96be2a5f8a45b7 (patch) | |
tree | 40d9202363c5e81f9fe38b4d52a1cfa889792cda /libs/lucid-http/luasrc/lucid/http/handler | |
parent | f9263e00c1371eff6ace0252143236d6bf6f2ce2 (diff) |
GSoC: Documentation #2
Diffstat (limited to 'libs/lucid-http/luasrc/lucid/http/handler')
-rw-r--r-- | libs/lucid-http/luasrc/lucid/http/handler/catchall.lua | 18 | ||||
-rw-r--r-- | libs/lucid-http/luasrc/lucid/http/handler/file.lua | 23 | ||||
-rw-r--r-- | libs/lucid-http/luasrc/lucid/http/handler/luci.lua | 16 |
3 files changed, 56 insertions, 1 deletions
diff --git a/libs/lucid-http/luasrc/lucid/http/handler/catchall.lua b/libs/lucid-http/luasrc/lucid/http/handler/catchall.lua index 3b2c2b0a0c..30af84ba2a 100644 --- a/libs/lucid-http/luasrc/lucid/http/handler/catchall.lua +++ b/libs/lucid-http/luasrc/lucid/http/handler/catchall.lua @@ -15,8 +15,15 @@ local srv = require "luci.lucid.http.server" local proto = require "luci.http.protocol" local util = require "luci.util" +--- Catchall Handler +-- @cstyle instance module "luci.lucid.http.handler.catchall" +--- Create a Redirect handler. +-- @param name Name +-- @param target Redirect Target +-- @class function +-- @return Redirect handler object Redirect = util.class(srv.Handler) function Redirect.__init__(self, name, target) @@ -24,6 +31,9 @@ function Redirect.__init__(self, name, target) self.target = target end +--- Handle a GET request. +-- @param request Request object +-- @return status code, header table, response source function Redirect.handle_GET(self, request) local target = self.target local protocol = request.env.HTTPS and "https://" or "http://" @@ -46,8 +56,16 @@ function Redirect.handle_GET(self, request) return 302, { Location = target } end +--- Handle a POST request. +-- @class function +-- @param request Request object +-- @return status code, header table, response source Redirect.handle_POST = Redirect.handle_GET +--- Handle a HEAD request. +-- @class function +-- @param request Request object +-- @return status code, header table, response source function Redirect.handle_HEAD(self, request) local stat, head = self:handle_GET(request) return stat, head diff --git a/libs/lucid-http/luasrc/lucid/http/handler/file.lua b/libs/lucid-http/luasrc/lucid/http/handler/file.lua index d08e47025d..8f7bf8b8a7 100644 --- a/libs/lucid-http/luasrc/lucid/http/handler/file.lua +++ b/libs/lucid-http/luasrc/lucid/http/handler/file.lua @@ -28,8 +28,16 @@ local date = require "luci.http.protocol.date" local mime = require "luci.http.protocol.mime" local cond = require "luci.http.protocol.conditionals" +--- File system handler +-- @cstyle instance module "luci.lucid.http.handler.file" +--- Create a simple file system handler. +-- @class function +-- @param name Name +-- @param docroot Physical Document Root +-- @param options Options +-- @return Simple file system handler object Simple = util.class(srv.Handler) function Simple.__init__(self, name, docroot, options) @@ -42,6 +50,10 @@ function Simple.__init__(self, name, docroot, options) self.error404 = options.error404 end +--- Parse a range request. +-- @param request Request object +-- @param size File size +-- @return offset, length, range header or boolean status function Simple.parse_range(self, request, size) if not request.headers.Range then return true @@ -75,6 +87,9 @@ function Simple.parse_range(self, request, size) return from, (1 + to - from), range end +--- Translate path and return file information. +-- @param uri Request URI +-- @return physical file path, file information function Simple.getfile(self, uri) if not self.realdocroot then self.realdocroot = fs.realpath(self.docroot) @@ -86,6 +101,9 @@ function Simple.getfile(self, uri) return file, fs.stat(file) end +--- Handle a GET request. +-- @param request Request object +-- @return status code, header table, response source function Simple.handle_GET(self, request) local file, stat = self:getfile(prot.urldecode(request.env.PATH_INFO, true)) @@ -190,7 +208,7 @@ function Simple.handle_GET(self, request) 'p { margin:0 }' .. '\n</style></head><body><h1>Index of %s/</h1><hr /><ul>'.. '<li><p><a href="%s/../">../</a> ' .. - '<small>(parent directory)</small><br />' .. + '<small>(parent directory)</small><br />' .. '<small></small></li>', duri, duri, ruri ) @@ -244,6 +262,9 @@ function Simple.handle_GET(self, request) end end +--- Handle a HEAD request. +-- @param request Request object +-- @return status code, header table, response source function Simple.handle_HEAD(self, ...) local stat, head = self:handle_GET(...) return stat, head diff --git a/libs/lucid-http/luasrc/lucid/http/handler/luci.lua b/libs/lucid-http/luasrc/lucid/http/handler/luci.lua index c54e39366a..d816aae13b 100644 --- a/libs/lucid-http/luasrc/lucid/http/handler/luci.lua +++ b/libs/lucid-http/luasrc/lucid/http/handler/luci.lua @@ -19,8 +19,15 @@ local srv = require "luci.lucid.http.server" local coroutine = require "coroutine" local type = type +--- LuCI web handler +-- @cstyle instance module "luci.lucid.http.handler.luci" +--- Create a LuCI web handler. +-- @class function +-- @param name Name +-- @param prefix Dispatching prefix +-- @return LuCI web handler object Luci = util.class(srv.Handler) function Luci.__init__(self, name, prefix) @@ -28,15 +35,24 @@ function Luci.__init__(self, name, prefix) self.prefix = prefix end +--- Handle a HEAD request. +-- @param request Request object +-- @return status code, header table, response source function Luci.handle_HEAD(self, ...) local stat, head = self:handle_GET(...) return stat, head end +--- Handle a POST request. +-- @param request Request object +-- @return status code, header table, response source function Luci.handle_POST(self, ...) return self:handle_GET(...) end +--- Handle a GET request. +-- @param request Request object +-- @return status code, header table, response source function Luci.handle_GET(self, request, sourcein) local r = http.Request( request.env, |