parse the XRDS results

Apparently you have to parse the XRDS results from the discovery
result object. Who knew?

darcs-hash:20080530190446-84dde-52e5220aa5b76bc443ed20a1d0e07e509a5522f8.gz
This commit is contained in:
Evan Prodromou 2008-05-30 15:04:46 -04:00
parent a0928778ba
commit 2a2992b102

View File

@ -85,14 +85,16 @@ class RemotesubscribeAction extends Action {
return; return;
} }
if (!$yadis->xrds) { $xrds =& Auth_Yadis_XRDS::parseXRDS($yadis->response_text);
if (!$xrds) {
$this->show_form(_t('Not a valid profile URL (no XRDS defined).')); $this->show_form(_t('Not a valid profile URL (no XRDS defined).'));
return; return;
} }
common_debug('remotesubscribe.php: XRDS is "'.print_r($yadis->xrds,TRUE).'"'); common_debug('remotesubscribe.php: XRDS is "'.print_r($xrds,TRUE).'"');
$omb = $this->getOmb($yadis); $omb = $this->getOmb($xrds);
if (!$omb) { if (!$omb) {
$this->show_form(_t('Not a valid profile URL (incorrect services).')); $this->show_form(_t('Not a valid profile URL (incorrect services).'));
@ -118,12 +120,12 @@ class RemotesubscribeAction extends Action {
return $user; return $user;
} }
function getOmb($yadis) { function getOmb($xrds) {
static $endpoints = array(OMB_ENDPOINT_UPDATEPROFILE, OMB_ENDPOINT_POSTNOTICE, static $endpoints = array(OMB_ENDPOINT_UPDATEPROFILE, OMB_ENDPOINT_POSTNOTICE,
OAUTH_ENDPOINT_REQUEST, OAUTH_ENDPOINT_AUTHORIZE, OAUTH_ENDPOINT_REQUEST, OAUTH_ENDPOINT_AUTHORIZE,
OAUTH_ENDPOINT_ACCESS); OAUTH_ENDPOINT_ACCESS);
$omb = array(); $omb = array();
$services = $yadis->services(); # ordered by priority $services = $xrds->services(); # ordered by priority
if (!$services) { if (!$services) {
common_debug('remotesubscribe.php: Got no services back from XRDS.'); common_debug('remotesubscribe.php: Got no services back from XRDS.');
return NULL; return NULL;