cleanup to ensure protocol version is passed properly. We will need it if/when any incompatible protocol changes are introduced.

This commit is contained in:
Mike Macgirvin 2010-10-12 20:29:04 -07:00
parent 3c440f70c6
commit 033935c194
6 changed files with 44 additions and 22 deletions

View File

@ -517,10 +517,10 @@ function dfrn_deliver($contact,$atom,$debugging = false) {
if($contact['duplex'] && $contact['issued-id']) if($contact['duplex'] && $contact['issued-id'])
$idtosend = '1:' . $orig_id; $idtosend = '1:' . $orig_id;
$url = $contact['notify'] . '?dfrn_id=' . $idtosend; $url = $contact['notify'] . '?dfrn_id=' . $idtosend . '&dfrn_version=' . DFRN_PROTOCOL_VERSION ;
if($debugging) if($debugging)
echo "URL: $url"; echo "URL: $url\n";
$xml = fetch_url($url); $xml = fetch_url($url);
@ -560,8 +560,8 @@ function dfrn_deliver($contact,$atom,$debugging = false) {
return 3; return 3;
} }
$postvars['dfrn_id'] = $idtosend; $postvars['dfrn_id'] = $idtosend;
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
if(($contact['rel']) && ($contact['rel'] != REL_FAN) && (! $contact['blocked']) && (! $contact['readonly'])) { if(($contact['rel']) && ($contact['rel'] != REL_FAN) && (! $contact['blocked']) && (! $contact['readonly'])) {
$postvars['data'] = $atom; $postvars['data'] = $atom;

View File

@ -94,12 +94,15 @@
if(intval($contact['duplex']) && $contact['issued-id']) if(intval($contact['duplex']) && $contact['issued-id'])
$idtosend = '1:' . $orig_id; $idtosend = '1:' . $orig_id;
$url = $contact['poll'] . '?dfrn_id=' . $idtosend . '&type=data&last_update=' . $last_update ; $url = $contact['poll'] . '?dfrn_id=' . $idtosend
. '&dfrn_version=' . DFRN_PROTOCOL_VERSION
. '&type=data&last_update=' . $last_update ;
$xml = fetch_url($url); $xml = fetch_url($url);
if($debugging) { if($debugging) {
echo "URL: " . $url . "\r\n"; echo "URL: " . $url . "\n";
echo "XML: " . $xml . "\r\n"; echo "XML: " . $xml . "\n";
} }
if(! $xml) { if(! $xml) {
@ -154,7 +157,7 @@
} }
$postvars['dfrn_id'] = $idtosend; $postvars['dfrn_id'] = $idtosend;
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
$xml = post_url($contact['poll'],$postvars); $xml = post_url($contact['poll'],$postvars);

View File

@ -109,7 +109,7 @@ function dfrn_confirm_post(&$a) {
$params['public_key'] = bin2hex(openssl_encrypt($public_key,'AES-256-CBC',$src_aes_key)); $params['public_key'] = bin2hex(openssl_encrypt($public_key,'AES-256-CBC',$src_aes_key));
} }
$params['dfrn_version'] = '2.0'; $params['dfrn_version'] = DFRN_PROTOCOL_VERSION ;
if($duplex == 1) if($duplex == 1)
$params['duplex'] = 1; $params['duplex'] = 1;

View File

@ -7,6 +7,7 @@ require_once('include/items.php');
function dfrn_notify_post(&$a) { function dfrn_notify_post(&$a) {
$dfrn_id = notags(trim($_POST['dfrn_id'])); $dfrn_id = notags(trim($_POST['dfrn_id']));
$dfrn_version = (float) $_POST['dfrn_version'];
$challenge = notags(trim($_POST['challenge'])); $challenge = notags(trim($_POST['challenge']));
$data = $_POST['data']; $data = $_POST['data'];
@ -374,6 +375,8 @@ function dfrn_notify_content(&$a) {
// If this is a duplex communication, ours will be the opposite. // If this is a duplex communication, ours will be the opposite.
$dfrn_id = notags(trim($_GET['dfrn_id'])); $dfrn_id = notags(trim($_GET['dfrn_id']));
$dfrn_version = (float) $_GET['dfrn_version'];
$direction = (-1); $direction = (-1);
if(strpos($dfrn_id,':') == 1) { if(strpos($dfrn_id,':') == 1) {
@ -435,7 +438,16 @@ function dfrn_notify_content(&$a) {
$challenge = bin2hex($challenge); $challenge = bin2hex($challenge);
$encrypted_id = bin2hex($encrypted_id); $encrypted_id = bin2hex($encrypted_id);
echo '<?xml version="1.0" encoding="UTF-8"?><dfrn_notify><status>' . $status . '</status><dfrn_version>2.0</dfrn_version><dfrn_id>' . $encrypted_id . '</dfrn_id><challenge>' . $challenge . '</challenge></dfrn_notify>' . "\r\n" ; header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n"
. '<dfrn_notify>' . "\r\n"
. "\t" . '<status>' . $status . '</status>' . "\r\n"
. "\t" . '<dfrn_version>' . DFRN_PROTOCOL_VERSION . '</dfrn_version>' . "\r\n"
. "\t" . '<dfrn_id>' . $encrypted_id . '</dfrn_id>' . "\r\n"
. "\t" . '<challenge>' . $challenge . '</challenge>' . "\r\n"
. '</dfrn_notify>' . "\r\n" ;
killme(); killme();
} }

View File

@ -14,7 +14,7 @@ function dfrn_poll_init(&$a) {
$type = $_GET['type']; $type = $_GET['type'];
if(x($_GET,'last_update')) if(x($_GET,'last_update'))
$last_update = $_GET['last_update']; $last_update = $_GET['last_update'];
$dfrn_version = ((x($_GET,'dfrn_version')) ? $_GET['dfrn_version'] : '1.0'); $dfrn_version = (float) $_GET['dfrn_version'] ;
$destination_url = ((x($_GET,'destination_url')) ? $_GET['destination_url'] : ''); $destination_url = ((x($_GET,'destination_url')) ? $_GET['destination_url'] : '');
@ -115,11 +115,12 @@ function dfrn_poll_init(&$a) {
function dfrn_poll_post(&$a) { function dfrn_poll_post(&$a) {
$dfrn_id = $_POST['dfrn_id']; $dfrn_id = $_POST['dfrn_id'];
$challenge = $_POST['challenge']; $challenge = $_POST['challenge'];
$url = $_POST['url']; $url = $_POST['url'];
$dfrn_version = (float) $_POST['dfrn_version'];
$direction = (-1); $direction = (-1);
if(strpos($dfrn_id,':') == 1) { if(strpos($dfrn_id,':') == 1) {
$direction = intval(substr($dfrn_id,0,1)); $direction = intval(substr($dfrn_id,0,1));
$dfrn_id = substr($dfrn_id,2); $dfrn_id = substr($dfrn_id,2);
@ -199,7 +200,7 @@ function dfrn_poll_post(&$a) {
</reputation> </reputation>
"; ";
killme(); killme();
return; // NOTREACHED // NOTREACHED
} }
else { else {
$o = get_feed_for($a,$dfrn_id, $a->argv[1], $last_update, $direction); $o = get_feed_for($a,$dfrn_id, $a->argv[1], $last_update, $direction);
@ -222,6 +223,8 @@ function dfrn_poll_content(&$a) {
if(x($_GET,'last_update')) if(x($_GET,'last_update'))
$last_update = $_GET['last_update']; $last_update = $_GET['last_update'];
$dfrn_version = (float) $_GET['dfrn_version'];
$direction = (-1); $direction = (-1);
if(strpos($dfrn_id,':') == 1) { if(strpos($dfrn_id,':') == 1) {
$direction = intval(substr($dfrn_id,0,1)); $direction = intval(substr($dfrn_id,0,1));
@ -293,11 +296,15 @@ function dfrn_poll_content(&$a) {
else { else {
$status = 1; $status = 1;
} }
header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?><dfrn_poll><status>' .$status . '</status><dfrn_version>2.0</dfrn_version><dfrn_id>' . $encrypted_id . '</dfrn_id>' echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n"
. '<challenge>' . $challenge . '</challenge></dfrn_poll>' . "\r\n" ; . '<dfrn_poll>' . "\r\n"
session_write_close(); . "\t" . '<status>' .$status . '</status>' . "\r\n"
exit; . "\t" . '<dfrn_version>' . DFRN_PROTOCOL_VERSION . '</dfrn_version>' . "\r\n"
. "\t" . '<dfrn_id>' . $encrypted_id . '</dfrn_id>' . "\r\n"
. "\t" . '<challenge>' . $challenge . '</challenge>' . "\r\n"
. '</dfrn_poll>' . "\r\n" ;
killme();
} }
} }

View File

@ -197,7 +197,7 @@ function dfrn_request_post(&$a) {
} }
if($network == 'dfrn') { if($network === 'dfrn') {
$ret = q("SELECT * FROM `contact` WHERE `uid` = %d AND `url` = '%s' LIMIT 1", $ret = q("SELECT * FROM `contact` WHERE `uid` = %d AND `url` = '%s' LIMIT 1",
intval($uid), intval($uid),
dbesc($url) dbesc($url)