From 71b3b9ee2be6973c3f55a59811ae103321c5abcc Mon Sep 17 00:00:00 2001
From: Brion Vibber <brion@pobox.com>
Date: Fri, 22 Jan 2010 13:58:20 -0800
Subject: Consolidate PuSH publishing ping into a single POST for all feeds,
 and fix server response (if any on failure) to go to log instead of stdout.

---
 plugins/PubSubHubBub/PubSubHubBubPlugin.php | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

(limited to 'plugins')

diff --git a/plugins/PubSubHubBub/PubSubHubBubPlugin.php b/plugins/PubSubHubBub/PubSubHubBubPlugin.php
index 8286cd548..ce6086df9 100644
--- a/plugins/PubSubHubBub/PubSubHubBubPlugin.php
+++ b/plugins/PubSubHubBub/PubSubHubBubPlugin.php
@@ -211,13 +211,20 @@ class PubSubHubBubPlugin extends Plugin
                                                   'format' => 'atom'));
             }
         }
-
-        foreach (array_unique($feeds) as $feed) {
-            if (!$publisher->publish_update($feed)) {
-                common_log_line(LOG_WARNING,
-                                $feed.' was not published to hub at '.
-                                $this->hub.':'.$publisher->last_response());
-            }
+        $feeds = array_unique($feeds);
+
+        ob_start();
+        $ok = $publisher->publish_update($feeds);
+        $push_last_response = ob_get_clean();
+
+        if (!$ok) {
+            common_log(LOG_WARNING,
+                       'Failure publishing ' . count($feeds) . ' feeds to hub at '.
+                       $this->hub.': '.$push_last_response);
+        } else {
+            common_log(LOG_INFO,
+                       'Published ' . count($feeds) . ' feeds to hub at '.
+                       $this->hub.': '.$push_last_response);
         }
 
         return true;
-- 
cgit v1.2.3-54-g00ecf