DFRN: Improved delivery status handling

This commit is contained in:
Michael
2017-08-16 04:08:57 +00:00
parent 0abdb26507
commit 791fc1d8b3
3 changed files with 32 additions and 19 deletions

View File

@@ -1281,7 +1281,11 @@ class dfrn {
$res = parse_xml_string($xml);
return $res->status;
if (!isset($res->status)) {
return -11;
}
return intval($res->status);
}
/**
@@ -2800,19 +2804,20 @@ class dfrn {
* @param text $xml The DFRN message
* @param array $importer Record of the importer user mixed with contact of the content
* @param bool $sort_by_date Is used when feeds are polled
* @return integer Import status
* @todo set proper type-hints
*/
public static function import($xml,$importer, $sort_by_date = false) {
public static function import($xml, $importer, $sort_by_date = false) {
if ($xml == "") {
return;
return 400;
}
if ($importer["readonly"]) {
// We aren't receiving stuff from this person. But we will quietly ignore them
// rather than a blatant "go away" message.
logger('ignoring contact '.$importer["id"]);
return;
return 403;
}
$doc = new DOMDocument();
@@ -2917,5 +2922,6 @@ class dfrn {
}
}
logger("Import done for user " . $importer["uid"] . " from contact " . $importer["id"], LOGGER_DEBUG);
return 200;
}
}

View File

@@ -372,14 +372,22 @@ function post_url($url, $params, $headers = null, &$redirects = 0, $timeout = 0)
function xml_status($st, $message = '') {
$xml_message = ((strlen($message)) ? "\t<message>" . xmlify($message) . "</message>\r\n" : '');
$result = array('status' => $st);
if ($st)
if ($message != '') {
$result['message'] = $message;
}
if ($st) {
logger('xml_status returning non_zero: ' . $st . " message=" . $message);
}
header("Content-type: text/xml");
$xmldata = array("result" => $result);
echo xml::from_array($xmldata, $xml);
header( "Content-type: text/xml" );
echo '<?xml version="1.0" encoding="UTF-8"?>'."\r\n";
echo "<result>\r\n\t<status>$st</status>\r\n$xml_message</result>\r\n";
killme();
}