Mercurial > prosody-modules
comparison mod_pubsub_feeds/mod_pubsub_feeds.lua @ 1456:2cd667d8edbd
mod_pubsub_feeds: Handle denied subscription requests
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 26 Jun 2014 18:33:13 +0200 |
| parents | 13e359c48b5b |
| children | 720ff25d94e6 |
comparison
equal
deleted
inserted
replaced
| 1455:13e359c48b5b | 1456:2cd667d8edbd |
|---|---|
| 206 if query.node then | 206 if query.node then |
| 207 if query["hub.topic"] ~= feed.url then | 207 if query["hub.topic"] ~= feed.url then |
| 208 module:log("debug", "Invalid topic: %s", tostring(query["hub.topic"])) | 208 module:log("debug", "Invalid topic: %s", tostring(query["hub.topic"])) |
| 209 return 404 | 209 return 404 |
| 210 end | 210 end |
| 211 if query["hub.mode"] ~= feed.subscription then | 211 if query["hub.mode"] == "denied" then |
| 212 module:log("info", "Subscription denied: %s", tostring(query["hub.reason"] or "No reason given")) | |
| 213 feed.subscription = "denied"; | |
| 214 return "Ok then :("; | |
| 215 elseif query["hub.mode"] == feed.subscription then | |
| 216 module:log("debug", "Confirming %s request to %s", feed.subscription, feed.url) | |
| 217 else | |
| 212 module:log("debug", "Invalid mode: %s", tostring(query["hub.mode"])) | 218 module:log("debug", "Invalid mode: %s", tostring(query["hub.mode"])) |
| 213 return 400 | 219 return 400 |
| 214 -- Would this work for unsubscribe? | |
| 215 -- Also, if feed.subscription is changed here, | |
| 216 -- it would probably invalidate the subscription | |
| 217 -- when/if the hub asks if it should be renewed | |
| 218 end | 220 end |
| 219 local lease_seconds = tonumber(query["hub.lease_seconds"]); | 221 local lease_seconds = tonumber(query["hub.lease_seconds"]); |
| 220 if lease_seconds then | 222 if lease_seconds then |
| 221 feed.lease_expires = time() + lease_seconds - refresh_interval * 2; | 223 feed.lease_expires = time() + lease_seconds - refresh_interval * 2; |
| 222 end | 224 end |
