]> git.mxchange.org Git - friendica.git/blobdiff - src/Network/Probe.php
Centralized gsid generation
[friendica.git] / src / Network / Probe.php
index 1e6d8406a12697b58bc181708705ede0d4310fbe..5872ae587b53fe84efd4248699a98a2d9cf5c064 100644 (file)
@@ -30,6 +30,7 @@ use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
+use Friendica\Model\GServer;
 use Friendica\Model\Profile;
 use Friendica\Protocol\ActivityNamespace;
 use Friendica\Protocol\ActivityPub;
 use Friendica\Model\Profile;
 use Friendica\Protocol\ActivityNamespace;
 use Friendica\Protocol\ActivityPub;
@@ -86,14 +87,16 @@ class Probe
                                "community", "keywords", "location", "about", "hide",
                                "batch", "notify", "poll", "request", "confirm", "poco",
                                "following", "followers", "inbox", "outbox", "sharedinbox",
                                "community", "keywords", "location", "about", "hide",
                                "batch", "notify", "poll", "request", "confirm", "poco",
                                "following", "followers", "inbox", "outbox", "sharedinbox",
-                               "priority", "network", "pubkey", "baseurl"];
+                               "priority", "network", "pubkey", "baseurl", "gsid"];
 
                $newdata = [];
                foreach ($fields as $field) {
                        if (isset($data[$field])) {
                                $newdata[$field] = $data[$field];
 
                $newdata = [];
                foreach ($fields as $field) {
                        if (isset($data[$field])) {
                                $newdata[$field] = $data[$field];
-                       } else {
+                       } elseif ($field != "gsid") {
                                $newdata[$field] = "";
                                $newdata[$field] = "";
+                       } else {
+                               $newdata[$field] = null;
                        }
                }
 
                        }
                }
 
@@ -370,7 +373,7 @@ class Probe
                        $data[] = ["@attributes" => $link];
                }
 
                        $data[] = ["@attributes" => $link];
                }
 
-               if (is_array($webfinger["aliases"])) {
+               if (!empty($webfinger["aliases"]) && is_array($webfinger["aliases"])) {
                        foreach ($webfinger["aliases"] as $alias) {
                                $data[] = ["@attributes" =>
                                                        ["rel" => "alias",
                        foreach ($webfinger["aliases"] as $alias) {
                                $data[] = ["@attributes" =>
                                                        ["rel" => "alias",
@@ -461,6 +464,10 @@ class Probe
                        $data['baseurl'] = self::$baseurl;
                }
 
                        $data['baseurl'] = self::$baseurl;
                }
 
+               if (!empty($data['baseurl']) && empty($data['gsid'])) {
+                       $data['gsid'] = GServer::getID($data['baseurl']);
+               }
+
                if (empty($data['network'])) {
                        $data['network'] = Protocol::PHANTOM;
                }
                if (empty($data['network'])) {
                        $data['network'] = Protocol::PHANTOM;
                }