summaryrefslogtreecommitdiffhomepage
path: root/libs/lucid-http/luasrc/lucid/http/handler
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2009-06-14 08:51:43 +0000
committerSteven Barth <steven@midlink.org>2009-06-14 08:51:43 +0000
commitc47be2e727d1bb3e2e3aa415ec96be2a5f8a45b7 (patch)
tree40d9202363c5e81f9fe38b4d52a1cfa889792cda /libs/lucid-http/luasrc/lucid/http/handler
parentf9263e00c1371eff6ace0252143236d6bf6f2ce2 (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.lua18
-rw-r--r--libs/lucid-http/luasrc/lucid/http/handler/file.lua23
-rw-r--r--libs/lucid-http/luasrc/lucid/http/handler/luci.lua16
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,