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