From 684b9419a037109f7a6f169ef3eba81e968733ed Mon Sep 17 00:00:00 2001
From: Mikael Nordfeldth <mmn@hethane.se>
Date: Sun, 4 Oct 2015 14:46:45 +0200
Subject: [PATCH] Add an event to get plugin discovery hints from XRD

---
 plugins/OStatus/lib/discoveryhints.php | 43 ++++++++++++++------------
 1 file changed, 23 insertions(+), 20 deletions(-)

diff --git a/plugins/OStatus/lib/discoveryhints.php b/plugins/OStatus/lib/discoveryhints.php
index 27c32b483c..4df7690038 100644
--- a/plugins/OStatus/lib/discoveryhints.php
+++ b/plugins/OStatus/lib/discoveryhints.php
@@ -24,28 +24,31 @@ class DiscoveryHints {
     {
         $hints = array();
 
-        foreach ($xrd->links as $link) {
-            switch ($link->rel) {
-            case WebFingerResource_Profile::PROFILEPAGE:
-                $hints['profileurl'] = $link->href;
-                break;
-            case Salmon::REL_SALMON:
-            case Salmon::NS_MENTIONS:   // XXX: deprecated, remove in the future
-            case Salmon::NS_REPLIES:    // XXX: deprecated, remove in the future
-                $hints['salmon'] = $link->href;
-                break;
-            case Discovery::UPDATESFROM:
-                if (empty($link->type) || $link->type == 'application/atom+xml') {
-                    $hints['feedurl'] = $link->href;
+        if (Event::handle('StartDiscoveryHintsFromXRD', array($xrd, &$hints))) {
+            foreach ($xrd->links as $link) {
+                switch ($link->rel) {
+                case WebFingerResource_Profile::PROFILEPAGE:
+                    $hints['profileurl'] = $link->href;
+                    break;
+                case Salmon::REL_SALMON:
+                case Salmon::NS_MENTIONS:   // XXX: deprecated, remove in the future
+                case Salmon::NS_REPLIES:    // XXX: deprecated, remove in the future
+                    $hints['salmon'] = $link->href;
+                    break;
+                case Discovery::UPDATESFROM:
+                    if (empty($link->type) || $link->type == 'application/atom+xml') {
+                        $hints['feedurl'] = $link->href;
+                    }
+                    break;
+                case Discovery::HCARD:
+                case Discovery::MF2_HCARD:
+                    $hints['hcard'] = $link->href;
+                    break;
+                default:
+                    break;
                 }
-                break;
-            case Discovery::HCARD:
-            case Discovery::MF2_HCARD:
-                $hints['hcard'] = $link->href;
-                break;
-            default:
-                break;
             }
+            Event::handle('EndDiscoveryHintsFromXRD', array($xrd, &$hints));
         }
 
         return $hints;
-- 
2.39.5