OStatus fix: send the feed's root element, not the DOM document, down to low-level feed processing as entry context on PuSH input.

This commit is contained in:
Brion Vibber 2010-03-05 10:55:07 -08:00
parent 6a377a4ba4
commit 89e313e45b

View File

@ -428,10 +428,18 @@ class Ostatus_profile extends Memcached_DataObject
* Currently assumes that all items in the feed are new, * Currently assumes that all items in the feed are new,
* coming from a PuSH hub. * coming from a PuSH hub.
* *
* @param DOMDocument $feed * @param DOMDocument $doc
* @param string $source identifier ("push")
*/ */
public function processFeed($feed, $source) public function processFeed(DOMDocument $doc, $source)
{ {
$feed = $doc->documentElement;
if ($feed->localName != 'feed' || $feed->namespaceURI != Activity::ATOM) {
common_log(LOG_ERR, __METHOD__ . ": not an Atom feed, ignoring");
return;
}
$entries = $feed->getElementsByTagNameNS(Activity::ATOM, 'entry'); $entries = $feed->getElementsByTagNameNS(Activity::ATOM, 'entry');
if ($entries->length == 0) { if ($entries->length == 0) {
common_log(LOG_ERR, __METHOD__ . ": no entries in feed update, ignoring"); common_log(LOG_ERR, __METHOD__ . ": no entries in feed update, ignoring");
@ -449,6 +457,7 @@ class Ostatus_profile extends Memcached_DataObject
* *
* @param DOMElement $entry * @param DOMElement $entry
* @param DOMElement $feed for context * @param DOMElement $feed for context
* @param string $source identifier ("push" or "salmon")
*/ */
public function processEntry($entry, $feed, $source) public function processEntry($entry, $feed, $source)
{ {