X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Freceive.php;h=34128518b55014e287f3f5fc9b4f398b8625af8a;hb=21d35e52dd4a83635127e1a68f6a478cf3289b1b;hp=e2c110202adc8dcb020d0d44029dfe3f1a7b02e7;hpb=afb04142ce0ec4f291ed22be6e9f7781a7714628;p=friendica.git diff --git a/mod/receive.php b/mod/receive.php index e2c110202a..34128518b5 100644 --- a/mod/receive.php +++ b/mod/receive.php @@ -9,12 +9,11 @@ require_once('include/salmon.php'); require_once('include/crypto.php'); require_once('include/diaspora.php'); - function receive_post(&$a) { if($a->argc != 3 || $a->argv[1] !== 'users') - receive_return(500); + http_status_exit(500); $guid = $a->argv[2]; @@ -22,64 +21,29 @@ function receive_post(&$a) { dbesc($guid) ); if(! count($r)) - receive_return(500); + http_status_exit(500); $importer = $r[0]; - $xml = $_POST['xml']; + // It is an application/x-www-form-urlencoded + + $xml = urldecode($_POST['xml']); logger('mod-diaspora: new salmon ' . $xml, LOGGER_DATA); if(! $xml) - receive_return(500); + http_status_exit(500); $msg = diaspora_decode($importer,$xml); - if(! $msg) - receive_return(500); - - // If we reached this point, the message is good. - // Now let's figure out if the author is allowed to send us stuff. - - $r = q("SELECT * FROM `contact` WHERE `network` = 'dspr' AND ( `url` = '%s' OR `alias` = '%s') - AND `uid` = %d LIMIT 1", - dbesc($author_link), - dbesc($author_link), - intval($importer['uid']) - ); - if(! count($r)) { - logger('mod-diaspora: Author unknown to us.'); - } - - // is this a follower? Or have we ignored the person? - // If so we can not accept this post. - - if((count($r)) && (($r[0]['readonly']) || ($r[0]['rel'] == CONTACT_IS_FOLLOWER) || ($r[0]['blocked']))) { - logger('mod-diaspora: Ignoring this author.'); - receive_return(202); - // NOTREACHED - } - - require_once('include/items.php'); - - // Placeholder for hub discovery. We shouldn't find any hubs - // since we supplied the fake feed header - and it doesn't have any. - - $hub = ''; - - /** - * - * anti-spam measure: consume_feed will accept a follow activity from - * this person (and nothing else) if there is no existing contact record. - * - */ - - $contact_rec = ((count($r)) ? $r[0] : null); - - - receive_return(200); + logger('mod-diaspora: decoded msg: ' . print_r($msg,true), LOGGER_DATA); + if(! is_array($msg)) + http_status_exit(500); + diaspora_dispatch($importer,$msg); + http_status_exit(200); + // NOTREACHED }