<?php
+use Friendica\App;
+
function post_var($name) {
return (x($_POST, $name)) ? notags(trim($_POST[$name])) : '';
}
// Subscription request from subscriber
// https://pubsubhubbub.googlecode.com/git/pubsubhubbub-core-0.4.html#anchor4
// Example from GNU Social:
- // [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
+ // [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');
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);
killme();
}
-
-?>