Mercurial > prosody-hg
comparison net/httpserver.lua @ 1666:d1243b321c45
net.httpserver: Allow overriding default request handler
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 11 Aug 2009 20:49:19 +0100 |
| parents | 33b1aee4b77f |
| children | 36e1238db2f2 |
comparison
equal
deleted
inserted
replaced
| 1665:2c72b725384e | 1666:d1243b321c45 |
|---|---|
| 87 if not base then | 87 if not base then |
| 88 base = path:match("^http://[^/?]+/([^/?]+)"); | 88 base = path:match("^http://[^/?]+/([^/?]+)"); |
| 89 end | 89 end |
| 90 | 90 |
| 91 callback = (request.server and request.server.handlers[base]) or default_handler; | 91 callback = (request.server and request.server.handlers[base]) or default_handler; |
| 92 if callback == default_handler then | |
| 93 log("debug", "Default callback for this request (base: "..tostring(base)..")") | |
| 94 end | |
| 95 end | 92 end |
| 96 if callback then | 93 if callback then |
| 97 if err then | 94 if err then |
| 98 log("debug", "Request error: "..err); | 95 log("debug", "Request error: "..err); |
| 99 if not callback(nil, err, request) then | 96 if not callback(nil, err, request) then |
| 249 if params.base then | 246 if params.base then |
| 250 http_server.handlers[params.base] = params.handler; | 247 http_server.handlers[params.base] = params.handler; |
| 251 end | 248 end |
| 252 end | 249 end |
| 253 | 250 |
| 251 function set_default_handler(handler) | |
| 252 default_handler = handler; | |
| 253 end | |
| 254 | |
| 254 function new_from_config(ports, default_base, handle_request) | 255 function new_from_config(ports, default_base, handle_request) |
| 255 for _, options in ipairs(ports) do | 256 for _, options in ipairs(ports) do |
| 256 local port, base, ssl, interface = 5280, default_base, false, nil; | 257 local port, base, ssl, interface = 5280, default_base, false, nil; |
| 257 if type(options) == "number" then | 258 if type(options) == "number" then |
| 258 port = options; | 259 port = options; |
