Merge pull request #2174 from annando/1512-ostatus-subscribe
Bugfix: OStatus subscription worked by random until now ...
This commit is contained in:
commit
224ff8c132
1 changed files with 8 additions and 8 deletions
|
@ -39,7 +39,7 @@ function pubsubhubbub_init(&$a) {
|
||||||
http_status_exit(404);
|
http_status_exit(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger("pubsubhubbub: $hub_mode request from " .
|
logger("pubsubhubbub: $hub_mode request from " .
|
||||||
$_SERVER['REMOTE_ADDR']);
|
$_SERVER['REMOTE_ADDR']);
|
||||||
|
|
||||||
// get the nick name from the topic, a bit hacky but needed
|
// get the nick name from the topic, a bit hacky but needed
|
||||||
|
@ -52,9 +52,9 @@ function pubsubhubbub_init(&$a) {
|
||||||
|
|
||||||
// fetch user from database given the nickname
|
// fetch user from database given the nickname
|
||||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s'" .
|
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s'" .
|
||||||
" AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
" AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||||
dbesc($nick));
|
dbesc($nick));
|
||||||
|
|
||||||
if(!count($r)) {
|
if(!count($r)) {
|
||||||
logger('pubsubhubbub: local account not found: ' . $nick);
|
logger('pubsubhubbub: local account not found: ' . $nick);
|
||||||
http_status_exit(404);
|
http_status_exit(404);
|
||||||
|
@ -70,8 +70,8 @@ function pubsubhubbub_init(&$a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// get corresponding row from contact table
|
// get corresponding row from contact table
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0" .
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `blocked`".
|
||||||
" AND `pending` = 0 LIMIT 1",
|
" AND NOT `pending` AND `self` LIMIT 1",
|
||||||
intval($owner['uid']));
|
intval($owner['uid']));
|
||||||
if(!count($r)) {
|
if(!count($r)) {
|
||||||
logger('pubsubhubbub: contact not found.');
|
logger('pubsubhubbub: contact not found.');
|
||||||
|
@ -82,20 +82,20 @@ function pubsubhubbub_init(&$a) {
|
||||||
|
|
||||||
// sanity check that topic URLs are the same
|
// sanity check that topic URLs are the same
|
||||||
if(!link_compare($hub_topic, $contact['poll'])) {
|
if(!link_compare($hub_topic, $contact['poll'])) {
|
||||||
logger('pubsubhubbub: hub topic ' . $hub_topic . ' != ' .
|
logger('pubsubhubbub: hub topic ' . $hub_topic . ' != ' .
|
||||||
$contact['poll']);
|
$contact['poll']);
|
||||||
http_status_exit(404);
|
http_status_exit(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
// do subscriber verification according to the PuSH protocol
|
// do subscriber verification according to the PuSH protocol
|
||||||
$hub_challenge = random_string(40);
|
$hub_challenge = random_string(40);
|
||||||
$params = 'hub.mode=' .
|
$params = 'hub.mode=' .
|
||||||
($subscribe == 1 ? 'subscribe' : 'unsubscribe') .
|
($subscribe == 1 ? 'subscribe' : 'unsubscribe') .
|
||||||
'&hub.topic=' . urlencode($hub_topic) .
|
'&hub.topic=' . urlencode($hub_topic) .
|
||||||
'&hub.challenge=' . $hub_challenge .
|
'&hub.challenge=' . $hub_challenge .
|
||||||
'&hub.lease_seconds=604800' .
|
'&hub.lease_seconds=604800' .
|
||||||
'&hub.verify_token=' . $hub_verify_token;
|
'&hub.verify_token=' . $hub_verify_token;
|
||||||
|
|
||||||
// lease time is hard coded to one week (in seconds)
|
// lease time is hard coded to one week (in seconds)
|
||||||
// we don't actually enforce the lease time because GNU
|
// we don't actually enforce the lease time because GNU
|
||||||
// Social/StatusNet doesn't honour it (yet)
|
// Social/StatusNet doesn't honour it (yet)
|
||||||
|
|
Loading…
Reference in a new issue