webmcp
annotate framework/env/request/handler.lua @ 216:fd0360594636
Work on request.process(...), request.default_router(...), request.router(), request.handler(...)
| author | jbe | 
|---|---|
| date | Mon Jan 12 03:02:26 2015 +0100 (2015-01-12) | 
| parents | ba3dd4a17e3d | 
| children | 25a20bd1f416 | 
| rev | line source | 
|---|---|
| jbe@215 | 1 --[[-- | 
| jbe@215 | 2 request.handler( | 
| jbe@215 | 3 request -- HTTP request object | 
| jbe@215 | 4 ) | 
| jbe@215 | 5 | 
| jbe@215 | 6 Called by mcp.lua to process an HTTP request. Performs some initializations, then calls request.router(). | 
| jbe@215 | 7 | 
| jbe@215 | 8 --]]-- | 
| jbe@210 | 9 | 
| jbe@210 | 10 function request.handler(http_request) | 
| jbe@212 | 11 request._http_request = http_request | 
| jbe@215 | 12 local path = http_request.path | 
| jbe@215 | 13 if path then | 
| jbe@215 | 14 local elements = {} | 
| jbe@215 | 15 for match in string.gmatch(path, "/") do | 
| jbe@215 | 16 elements[#elements+1] = "../" | 
| jbe@215 | 17 end | 
| jbe@215 | 18 elements[#elements] = nil | 
| jbe@215 | 19 if #elements > 0 then | 
| jbe@215 | 20 request._relative_baseurl = table.concat(elements) | 
| jbe@215 | 21 else | 
| jbe@215 | 22 request._relative_baseurl = "./" | 
| jbe@215 | 23 end | 
| jbe@215 | 24 else | 
| jbe@215 | 25 request._relative_baseurl = nil | 
| jbe@215 | 26 end | 
| jbe@216 | 27 request.process(request.router()) | 
| jbe@215 | 28 end | 
| jbe@210 | 29 | 
| jbe@215 | 30 --//-- |