X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=mod%2Fpubsubhubbub.php;h=477d1e2968f2053d00aba2021a412068e39357ef;hb=ab60641e3ba731aca42ab510bdf9c2411db6aab4;hp=bfe553c44caf1e8c91b5ee7cc74f1e2167fe3408;hpb=ff569756ee6c5e058700cf6428918f059525e77c;p=friendica.git diff --git a/mod/pubsubhubbub.php b/mod/pubsubhubbub.php index bfe553c44c..477d1e2968 100644 --- a/mod/pubsubhubbub.php +++ b/mod/pubsubhubbub.php @@ -1,10 +1,12 @@ 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 +34,7 @@ function pubsubhubbub_init(&$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 +44,14 @@ function pubsubhubbub_init(&$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); @@ -81,7 +88,7 @@ function pubsubhubbub_init(&$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); @@ -158,5 +165,3 @@ function pubsubhubbub_init(&$a) { killme(); } - -?>