Import backlog on new subscription.

Danger is when importing a new feed that may be maliciously crafted
to contain a zillion entries.
This commit is contained in:
Mikael Nordfeldth
2017-04-21 09:31:27 +02:00
parent f51cb6fca9
commit e98bceec10
3 changed files with 33 additions and 3 deletions

View File

@@ -77,7 +77,7 @@ class PushCallbackAction extends Action
/**
* Handler for GET verification requests from the hub.
*/
function handleGet()
public function handleGet()
{
$mode = $this->arg('hub_mode');
$topic = $this->arg('hub_topic');
@@ -110,12 +110,21 @@ class PushCallbackAction extends Action
}
if ($mode == 'subscribe') {
if ($feedsub->sub_state == 'active') {
$renewal = ($feedsub->sub_state == 'active');
if ($renewal) {
common_log(LOG_INFO, __METHOD__ . ': sub update confirmed');
} else {
common_log(LOG_INFO, __METHOD__ . ': sub confirmed');
}
$feedsub->confirmSubscribe($lease_seconds);
if (!$renewal) {
// Kickstart the feed by importing its most recent backlog
// FIXME: Send this to background queue handling
common_log(LOG_INFO, __METHOD__ . ': Confirmed a new subscription, importing backlog...');
$feedsub->importFeed();
}
} else {
common_log(LOG_INFO, __METHOD__ . ": unsub confirmed; deleting sub record for $topic");
$feedsub->confirmUnsubscribe();