mirror of
https://github.com/friendica/friendica
synced 2025-04-24 03:50:12 +00:00
Send a salmon notification to every mentioned person.
This commit is contained in:
parent
419a3ab2d3
commit
cb0351dba0
5 changed files with 55 additions and 32 deletions
|
@ -7,7 +7,7 @@ require_once('include/crypto.php');
|
|||
function get_salmon_key($uri,$keyhash) {
|
||||
$ret = array();
|
||||
|
||||
logger('Fetching salmon key');
|
||||
logger('Fetching salmon key for '.$uri);
|
||||
|
||||
$arr = lrdd($uri);
|
||||
|
||||
|
@ -44,10 +44,10 @@ function get_salmon_key($uri,$keyhash) {
|
|||
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];
|
||||
}
|
||||
|
@ -62,20 +62,20 @@ function get_salmon_key($uri,$keyhash) {
|
|||
return '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function slapper($owner,$url,$slap) {
|
||||
|
||||
logger('slapper called. Data: ' . $slap);
|
||||
logger('slapper called for '.$url.'. Data: ' . $slap);
|
||||
|
||||
// does contact have a salmon endpoint?
|
||||
// does contact have a salmon endpoint?
|
||||
|
||||
if(! strlen($url))
|
||||
return;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ $namespaces = <<< EOT
|
|||
EOT;
|
||||
|
||||
$slap = str_replace('<entry>',$namespaces,$slap);
|
||||
|
||||
|
||||
// create a magic envelope
|
||||
|
||||
$data = base64url_encode($slap);
|
||||
|
@ -125,7 +125,7 @@ EOT;
|
|||
'$signature' => $signature
|
||||
));
|
||||
|
||||
// slap them
|
||||
// slap them
|
||||
post_url($url,$salmon, array(
|
||||
'Content-type: application/magic-envelope+xml',
|
||||
'Content-length: ' . strlen($salmon)
|
||||
|
@ -138,7 +138,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
|
||||
|
@ -152,7 +152,7 @@ EOT;
|
|||
'$signature' => $signature2
|
||||
));
|
||||
|
||||
// slap them
|
||||
// slap them
|
||||
post_url($url,$salmon, array(
|
||||
'Content-type: application/magic-envelope+xml',
|
||||
'Content-length: ' . strlen($salmon)
|
||||
|
@ -162,11 +162,11 @@ 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
|
||||
// the data, without the precomputed blob
|
||||
// the data, without the precomputed blob
|
||||
|
||||
$salmon = replace_macros($salmon_tpl,array(
|
||||
'$data' => $data,
|
||||
|
@ -176,7 +176,7 @@ EOT;
|
|||
'$signature' => $signature3
|
||||
));
|
||||
|
||||
// slap them
|
||||
// slap them
|
||||
post_url($url,$salmon, array(
|
||||
'Content-type: application/magic-envelope+xml',
|
||||
'Content-length: ' . strlen($salmon)
|
||||
|
@ -184,7 +184,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')))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue