webmcp
annotate framework/env/request/handler.lua @ 221:25a20bd1f416
More work on Moonbridge integration: several changes in env/request
| author | jbe | 
|---|---|
| date | Wed Feb 25 01:33:27 2015 +0100 (2015-02-25) | 
| parents | fd0360594636 | 
| children | 3db6f3ad0703 | 
| 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@221 | 14 local relative_baseurl_elements = {} | 
| jbe@215 | 15 for match in string.gmatch(path, "/") do | 
| jbe@221 | 16 relative_baseurl_elements[#relative_baseurl_elements+1] = "../" | 
| jbe@215 | 17 end | 
| jbe@221 | 18 request._relative_baseurl = table.concat(relative_baseurl_elements) | 
| jbe@215 | 19 else | 
| jbe@215 | 20 request._relative_baseurl = nil | 
| jbe@215 | 21 end | 
| jbe@221 | 22 request._route = request.router() | 
| jbe@221 | 23 request.process() | 
| jbe@215 | 24 end | 
| jbe@210 | 25 | 
| jbe@215 | 26 --//-- |