]> git.mxchange.org Git - friendica.git/commitdiff
Detect the hostname when the URI is in the format data@host.tld
authorMichael <heluecht@pirati.ca>
Sat, 30 Sep 2017 21:39:32 +0000 (21:39 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 30 Sep 2017 21:39:32 +0000 (21:39 +0000)
include/items.php

index 4b61641627bb64ab77665e72af8e9a491e608ca9..6945f8894d2819f0e98d461089e049e6d04441d8 100644 (file)
@@ -397,15 +397,24 @@ function uri_to_guid($uri, $host = "") {
        // We have to avoid that different routines could accidentally create the same value
        $parsed = parse_url($uri);
 
+       // When the hostname isn't given, we take it from the uri
        if ($host == "") {
-               $host = $parsed["host"];
+               // Is it in the format data@host.tld?
+               if ((count($parsed) == 1) && strstr($uri, '@')) {
+                       $mailparts = explode('@', $uri);
+                       $host = array_pop($mailparts);
+               } else {
+                       $host = $parsed["host"];
+               }
        }
 
+       // We use a hash of the hostname as prefix for the guid
        $guid_prefix = hash("crc32", $host);
 
        // Remove the scheme to make sure that "https" and "http" doesn't make a difference
        unset($parsed["scheme"]);
 
+       // Glue it together to be able to make a hash from it
        $host_id = implode("/", $parsed);
 
        // We could use any hash algorithm since it isn't a security issue