-require_once('library/simplepie/simplepie.inc');
-
-function receive_return($val) {
-
- if($val >= 400)
- $err = 'Error';
- if($val >= 200 && $val < 300)
- $err = 'OK';
-
- logger('mod-diaspora returns ' . $val);
- header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $err);
- killme();
-
-}
-
-function receive_post(&$a) {
-
- if($a->argc != 3 || $a->argv[1] !== 'users')
- receive_return(500);
-
- $guid = $a->argv[2];
-
- $r = q("SELECT * FROM `user` WHERE `guid` = '%s' LIMIT 1",
- dbesc($guid)
- );
- if(! count($r))
- salmon_return(500);
-
- $importer = $r[0];
-
- $xml = $_POST['xml'];
-
- logger('mod-diaspora: new salmon ' . $xml, LOGGER_DATA);
-
- if(! $xml)
- receive_return(500);
-
- // parse the xml
-
- $dom = simplexml_load_string($xml,'SimpleXMLElement',0,NAMESPACE_SALMON_ME);
-
- // figure out where in the DOM tree our data is hiding
-
- if($dom->provenance->data)
- $base = $dom->provenance;
- elseif($dom->env->data)
- $base = $dom->env;
- elseif($dom->data)
- $base = $dom;
-
- if(! $base) {
- logger('mod-diaspora: unable to locate salmon data in xml ');
- receive_return(400);
- }
-
- // Stash the signature away for now. We have to find their key or it won't be good for anything.
- $signature = base64url_decode($base->sig);
-
- // unpack the data
-
- // strip whitespace so our data element will return to one big base64 blob
- $data = str_replace(array(" ","\t","\r","\n"),array("","","",""),$base->data);
-
- // stash away some other stuff for later