Merge pull request #1874 from annando/1509-pubsub

Bugfix: pubsub tend to unsubscribe subscriptions in the past
This commit is contained in:
Tobias Diekershoff 2015-09-01 07:07:22 +02:00
commit 658c99dcf3

View file

@ -63,14 +63,15 @@ function pubsub_init(&$a) {
intval($owner['uid']) intval($owner['uid'])
); );
if(! count($r)) { if(! count($r)) {
logger('pubsub: contact not found.'); logger('pubsub: contact '.$contact_id.' not found.');
hub_return(false, ''); hub_return(false, '');
} }
if(! link_compare($hub_topic,$r[0]['poll'])) { if ($hub_topic)
logger('pubsub: hub topic ' . $hub_topic . ' != ' . $r[0]['poll']); if(! link_compare($hub_topic,$r[0]['poll'])) {
// should abort but let's humour them. logger('pubsub: hub topic ' . $hub_topic . ' != ' . $r[0]['poll']);
} // should abort but let's humour them.
}
$contact = $r[0]; $contact = $r[0];
@ -85,10 +86,11 @@ function pubsub_init(&$a) {
logger('pubsub: unsubscribe success'); logger('pubsub: unsubscribe success');
} }
$r = q("UPDATE `contact` SET `subhub` = %d WHERE `id` = %d", if ($hub_mode)
intval($subscribe), $r = q("UPDATE `contact` SET `subhub` = %d WHERE `id` = %d",
intval($contact['id']) intval($subscribe),
); intval($contact['id'])
);
hub_return(true, $hub_challenge); hub_return(true, $hub_challenge);
} }
@ -120,7 +122,7 @@ function pubsub_post(&$a) {
$importer = $r[0]; $importer = $r[0];
$r = q("SELECT * FROM `contact` WHERE `subhub` = 1 AND `id` = %d AND `uid` = %d $r = q("SELECT * FROM `contact` WHERE `subhub` = 1 AND `id` = %d AND `uid` = %d
AND ( `rel` = %d OR `rel` = %d OR network = '%s' ) AND `blocked` = 0 AND `readonly` = 0 LIMIT 1", AND ( `rel` = %d OR `rel` = %d OR network = '%s' ) AND `blocked` = 0 AND `readonly` = 0 LIMIT 1",
intval($contact_id), intval($contact_id),
intval($importer['uid']), intval($importer['uid']),