X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fpubsubhubbub.php;h=f3134308fb9fff24c1783fc0774df09a9a8e9168;hb=f22fe7118d52251dbd0898279ef078b797885ec4;hp=a6c36631aefa5fb77a6d383d2a39d1cff23156f3;hpb=4c04a78d1b6f14ce90e4ca0b23e356d234c4a296;p=friendica.git diff --git a/mod/pubsubhubbub.php b/mod/pubsubhubbub.php index a6c36631ae..f3134308fb 100644 --- a/mod/pubsubhubbub.php +++ b/mod/pubsubhubbub.php @@ -1,27 +1,31 @@ subscribe - // [hub_callback] => http://status.local/main/push/callback/1 - // [hub_verify] => sync - // [hub_verify_token] => af11... - // [hub_secret] => af11... - // [hub_topic] => http://friendica.local/dfrn_poll/sazius - - if($_SERVER['REQUEST_METHOD'] === 'POST') { + // [hub_mode] => subscribe + // [hub_callback] => http://status.local/main/push/callback/1 + // [hub_verify] => sync + // [hub_verify_token] => af11... + // [hub_secret] => af11... + // [hub_topic] => http://friendica.local/dfrn_poll/sazius + + if ($_SERVER['REQUEST_METHOD'] === 'POST') { $hub_mode = post_var('hub_mode'); $hub_callback = post_var('hub_callback'); $hub_verify = post_var('hub_verify'); @@ -32,7 +36,7 @@ function pubsubhubbub_init(App &$a) { // check for valid hub_mode if ($hub_mode === 'subscribe') { $subscribe = 1; - } else if ($hub_mode === 'unsubscribe') { + } elseif ($hub_mode === 'unsubscribe') { $subscribe = 0; } else { logger("pubsubhubbub: invalid hub_mode=$hub_mode, ignoring."); @@ -42,9 +46,14 @@ function pubsubhubbub_init(App &$a) { logger("pubsubhubbub: $hub_mode request from " . $_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 as a fallback $nick = substr(strrchr($hub_topic, "/"), 1); + // Normally the url should now contain the nick name as last part of the url + if ($a->argc > 1) { + $nick = $a->argv[1]; + } + if (!$nick) { logger('pubsubhubbub: bad hub_topic=$hub_topic, ignoring.'); http_status_exit(404); @@ -55,7 +64,7 @@ function pubsubhubbub_init(App &$a) { " AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1", dbesc($nick)); - if (!dbm::is_result($r)) { + if (!DBM::is_result($r)) { logger('pubsubhubbub: local account not found: ' . $nick); http_status_exit(404); } @@ -73,7 +82,7 @@ function pubsubhubbub_init(App &$a) { $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `blocked`". " AND NOT `pending` AND `self` LIMIT 1", intval($owner['uid'])); - if (!dbm::is_result($r)) { + if (!DBM::is_result($r)) { logger('pubsubhubbub: contact not found.'); http_status_exit(404); } @@ -81,7 +90,7 @@ function pubsubhubbub_init(App &$a) { $contact = $r[0]; // 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 . ' != ' . $contact['poll']); http_status_exit(404); @@ -132,7 +141,7 @@ function pubsubhubbub_init(App &$a) { // if we are just updating an old subscription, keep the // old values for push and last_update - if (dbm::is_result($r)) { + if (DBM::is_result($r)) { $last_update = $r[0]['last_update']; $push_flag = $r[0]['push']; } @@ -158,5 +167,3 @@ function pubsubhubbub_init(App &$a) { killme(); } - -?>