X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fsalmon.php;h=2b583347042e24cc8d26dca3868eb8f7ac2054f5;hb=95bb8d38e87d8b09ef37404c4b23c08b6feb9da4;hp=ed4ed7ad6280f789588fea63a6ba5b53c65cdf47;hpb=e66489d67ffd10c2c47a82308b2f34da2d362684;p=friendica.git diff --git a/include/salmon.php b/include/salmon.php index ed4ed7ad62..2b58334704 100644 --- a/include/salmon.php +++ b/include/salmon.php @@ -1,15 +1,14 @@ 0) { + for ($x = 0; $x < count($ret); $x ++) { + if (substr($ret[$x],0,5) === 'data:') { + if (strstr($ret[$x],',')) { $ret[$x] = substr($ret[$x],strpos($ret[$x],',')+1); - else + } else { $ret[$x] = substr($ret[$x],5); - } - else + } + } elseif (normalise_link($ret[$x]) == 'http://') { $ret[$x] = fetch_url($ret[$x]); + } } } logger('Key located: ' . print_r($ret,true)); - if(count($ret) == 1) { + if (count($ret) == 1) { // We only found one one key so we don't care if the hash matches. - // If it's the wrong key we'll find out soon enough because - // message verification will fail. This also covers some older + // If it's the wrong key we'll find out soon enough because + // message verification will fail. This also covers some older // software which don't supply a keyhash. As long as they only - // have one key we'll be right. + // have one key we'll be right. return $ret[0]; } else { - foreach($ret as $a) { + foreach ($ret as $a) { $hash = base64url_encode(hash('sha256',$a)); - if($hash == $keyhash) + if ($hash == $keyhash) { return $a; + } } } @@ -66,8 +67,6 @@ function get_salmon_key($uri,$keyhash) { function slapper($owner,$url,$slap) { - logger('slapper called for '.$owner['url'].' to '.$url.' . Data: ' . $slap); - // does contact have a salmon endpoint? if(! strlen($url)) @@ -75,27 +74,12 @@ function slapper($owner,$url,$slap) { if(! $owner['sprvkey']) { - logger(sprintf("slapper: user '%s' (%d) does not have a salmon private key. Send failed.", + logger(sprintf("user '%s' (%d) does not have a salmon private key. Send failed.", $owner['username'],$owner['uid'])); return; } - // add all namespaces to item - -$namespaces = <<< EOT - > -EOT; - - $slap = str_replace('',$namespaces,$slap); + logger('slapper called for '.$url.'. Data: ' . $slap); // create a magic envelope @@ -138,7 +122,7 @@ EOT; if($return_code > 299) { - logger('slapper: compliant salmon failed. Falling back to status.net hack2'); + logger('compliant salmon failed. Falling back to status.net hack2'); // Entirely likely that their salmon implementation is // non-compliant. Let's try once more, this time only signing @@ -162,7 +146,7 @@ EOT; if($return_code > 299) { - logger('slapper: compliant salmon failed. Falling back to status.net hack3'); + logger('compliant salmon failed. Falling back to status.net hack3'); // Entirely likely that their salmon implementation is // non-compliant. Let's try once more, this time only signing @@ -184,7 +168,7 @@ EOT; $return_code = $a->get_curl_code(); } } - logger('slapper returned ' . $return_code); + logger('slapper for '.$url.' returned ' . $return_code); if(! $return_code) return(-1); if(($return_code == 503) && (stristr($a->get_curl_headers(),'retry-after')))