diff --git a/include/api.php b/include/api.php index 267ba0c06..f4d7c5f5a 100644 --- a/include/api.php +++ b/include/api.php @@ -1649,6 +1649,7 @@ function api_statuses_home_timeline($type) $data = ['status' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); break; @@ -1731,6 +1732,7 @@ function api_statuses_public_timeline($type) $data = ['status' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); break; @@ -1787,6 +1789,7 @@ function api_statuses_networkpublic_timeline($type) $data = ['status' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); break; @@ -2108,6 +2111,7 @@ function api_statuses_mentions($type) $data = ['status' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); break; @@ -2188,6 +2192,7 @@ function api_statuses_user_timeline($type) $data = ['status' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); break; @@ -2263,8 +2268,10 @@ function api_favorites_create_destroy($type) $data = ['status' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); + break; } return api_format_data("status", $type, $data); @@ -2330,8 +2337,10 @@ function api_favorites($type) $data = ['status' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); + break; } return api_format_data("statuses", $type, $data); @@ -3145,6 +3154,7 @@ function api_lists_statuses($type) $data = ['status' => $items]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); break; @@ -3541,8 +3551,10 @@ function api_direct_messages_new($type) switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $sender); + break; } return api_format_data("direct-messages", $type, $data); @@ -3807,8 +3819,10 @@ function api_direct_messages_box($type, $box, $verbose) $data = ['direct_message' => $ret]; switch ($type) { case "atom": + break; case "rss": $data = api_rss_extra($a, $data, $user_info); + break; } return api_format_data("direct-messages", $type, $data); diff --git a/mod/pubsubhubbub.php b/mod/pubsubhubbub.php index d38cbe227..59fd458f7 100644 --- a/mod/pubsubhubbub.php +++ b/mod/pubsubhubbub.php @@ -65,7 +65,7 @@ function pubsubhubbub_init(App $a) { // fetch user from database given the nickname $condition = ['nickname' => $nick, 'account_expired' => false, 'account_removed' => false]; - $owner = DBA::selectFirst('user', ['uid', 'hidewall'], $condition); + $owner = DBA::selectFirst('user', ['uid', 'hidewall', 'nickname'], $condition); if (!DBA::isResult($owner)) { Logger::log('Local account not found: ' . $nick . ' - topic: ' . $hub_topic . ' - callback: ' . $hub_callback); System::httpExit(404); @@ -88,7 +88,9 @@ function pubsubhubbub_init(App $a) { // sanity check that topic URLs are the same $hub_topic2 = str_replace('/feed/', '/dfrn_poll/', $hub_topic); - if (!Strings::compareLink($hub_topic, $contact['poll']) && !Strings::compareLink($hub_topic2, $contact['poll'])) { + $self = System::baseUrl() . '/api/statuses/user_timeline/' . $owner['nickname'] . '.atom'; + + if (!Strings::compareLink($hub_topic, $contact['poll']) && !Strings::compareLink($hub_topic2, $contact['poll']) && !Strings::compareLink($hub_topic, $self)) { Logger::log('Hub topic ' . $hub_topic . ' != ' . $contact['poll']); System::httpExit(404); }