Mercurial > prosody-modules
comparison mod_pubsub_feed/mod_pubsub_feed.lua @ 402:c92a37a72b25
mod_pubsub_feed: Use httpserver.new_from_config(). Fixes SSL. And fix traceback when called without a querypart.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 24 Aug 2011 15:55:49 +0200 |
| parents | c85397063eca |
| children | fc62b26dfdf6 |
comparison
equal
deleted
inserted
replaced
| 401:c85397063eca | 402:c92a37a72b25 |
|---|---|
| 212 end); | 212 end); |
| 213 end | 213 end |
| 214 | 214 |
| 215 function handle_http_request(method, body, request) | 215 function handle_http_request(method, body, request) |
| 216 --module:log("debug", "%s request to %s%s with body %s", method, request.url.path, request.url.query and "?" .. request.url.query or "", #body > 0 and body or "empty"); | 216 --module:log("debug", "%s request to %s%s with body %s", method, request.url.path, request.url.query and "?" .. request.url.query or "", #body > 0 and body or "empty"); |
| 217 local query = request.url.query; | 217 local query = request.url.query or {}; |
| 218 if query and type(query) == "string" then | 218 if query and type(query) == "string" then |
| 219 query = urlparams(query); | 219 query = urlparams(query); |
| 220 --module:log("debug", "GET data: %s", dump(query)); | 220 --module:log("debug", "GET data: %s", dump(query)); |
| 221 end | 221 end |
| 222 --module:log("debug", "Headers: %s", dump(request.headers)); | 222 --module:log("debug", "Headers: %s", dump(request.headers)); |
| 243 module:log("debug", "Confirming %s request to %s", feed.subscription, feed.url) | 243 module:log("debug", "Confirming %s request to %s", feed.subscription, feed.url) |
| 244 return http_response(200, nil, query["hub.challenge"]) | 244 return http_response(200, nil, query["hub.challenge"]) |
| 245 end | 245 end |
| 246 return http_response(400); | 246 return http_response(400); |
| 247 elseif method == "POST" then | 247 elseif method == "POST" then |
| 248 -- TODO http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.3.html#authednotify | |
| 249 if #body > 0 and feed_list[query.node] then | 248 if #body > 0 and feed_list[query.node] then |
| 250 module:log("debug", "got %d bytes PuSHed for %s", #body, query.node); | 249 module:log("debug", "got %d bytes PuSHed for %s", #body, query.node); |
| 251 local feed = feed_list[query.node]; | 250 local feed = feed_list[query.node]; |
| 252 local signature = request.headers["x-hub-signature"]; | 251 local signature = request.headers["x-hub-signature"]; |
| 253 if feed.secret then | 252 if feed.secret then |
| 269 end | 268 end |
| 270 | 269 |
| 271 function init() | 270 function init() |
| 272 module:log("debug", "initiating", module.name); | 271 module:log("debug", "initiating", module.name); |
| 273 if use_pubsubhubub then | 272 if use_pubsubhubub then |
| 274 httpserver.new{ port = port_number, base = base_name, handler = handle_http_request } | 273 module:log("debug", "Starting http server on %s", format_url(secure, http_hostname, port_number, base_name, "NODE")); |
| 274 --httpserver.new{ port = port_number, ssl = secure, type = (ssl and "ssl") or "tcp", base = base_name, handler = handle_http_request } | |
| 275 httpserver.new_from_config( ports, handle_http_request, { base = "callback" } ); | |
| 275 end | 276 end |
| 276 add_task(0, refresh_feeds); | 277 add_task(0, refresh_feeds); |
| 277 end | 278 end |
| 278 | 279 |
| 279 if prosody.start_time then -- already started | 280 if prosody.start_time then -- already started |
