]> git.mxchange.org Git - friendica.git/commitdiff
Process "relocate" messages even if we are ignoring a contact
authorMichael <heluecht@pirati.ca>
Mon, 9 Oct 2017 05:02:50 +0000 (05:02 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 9 Oct 2017 05:02:50 +0000 (05:02 +0000)
include/dfrn.php

index 9a821a9d9125fe6a7c414a9df0c4ce50a637279d..eb0f9fbb4ee0d0fd7513095f053d31f83e8f246b 100644 (file)
@@ -2829,13 +2829,6 @@ class dfrn {
                        return 400;
                }
 
-               if ($importer["readonly"]) {
-                       // We aren't receiving stuff from this person. But we will quietly ignore them
-                       // rather than a blatant "go away" message.
-                       logger('ignoring contact '.$importer["id"]);
-                       return 403;
-               }
-
                $doc = new DOMDocument();
                @$doc->loadXML($xml);
 
@@ -2878,11 +2871,7 @@ class dfrn {
                        $accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue);
 
                        if ($accounttype != $importer["contact-type"]) {
-                               /// @TODO this way is the norm or putting ); at the end of the line?
-                               q("UPDATE `contact` SET `contact-type` = %d WHERE `id` = %d",
-                                       intval($accounttype),
-                                       intval($importer["id"])
-                               );
+                               dba::update('contact', array('contact-type' => $accounttype), array('id' => $importer["id"]));
                        }
                }
 
@@ -2891,10 +2880,21 @@ class dfrn {
                $forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue);
 
                if ($forum != $importer["forum"]) {
-                       q("UPDATE `contact` SET `forum` = %d WHERE `forum` != %d AND `id` = %d",
-                               intval($forum), intval($forum),
-                               intval($importer["id"])
-                       );
+                       $condition = array('`forum` != ? AND `id` = ?', $forum, $importer["id"]);
+                       dba::update('contact', array('forum' => $forum), $condition);
+               }
+
+               // We are processing relocations even if we are ignoring a contact
+               $relocations = $xpath->query("/atom:feed/dfrn:relocate");
+               foreach ($relocations AS $relocation) {
+                       self::process_relocation($xpath, $relocation, $importer);
+               }
+
+               if ($importer["readonly"]) {
+                       // We aren't receiving stuff from this person. But we will quietly ignore them
+                       // rather than a blatant "go away" message.
+                       logger('ignoring contact '.$importer["id"]);
+                       return 403;
                }
 
                $mails = $xpath->query("/atom:feed/dfrn:mail");
@@ -2907,11 +2907,6 @@ class dfrn {
                        self::process_suggestion($xpath, $suggestion, $importer);
                }
 
-               $relocations = $xpath->query("/atom:feed/dfrn:relocate");
-               foreach ($relocations AS $relocation) {
-                       self::process_relocation($xpath, $relocation, $importer);
-               }
-
                $deletions = $xpath->query("/atom:feed/at:deleted-entry");
                foreach ($deletions AS $deletion) {
                        self::process_deletion($xpath, $deletion, $importer);