diff -urp sites/all/modules/openid_orig/openid.module sites/all/modules/openid/openid.module --- sites/all/modules/openid_orig/openid.module 2007-05-24 11:01:22.000000000 -0400 +++ sites/all/modules/openid/openid.module 2007-07-04 23:05:31.000000000 -0400 @@ -202,7 +202,15 @@ function openid_begin($claimed_id, $retu // Now that there is an association created, move on // to request authentication from the IdP - $identity = (!empty($services[0]['delegate'])) ? $services[0]['delegate'] : $claimed_id; + // First check for LocalID. If not found, check for Delegate. Fall + // back to $claimed_id if neither is found. + if (!empty($services[0]['localid'])) + $identity = $services[0]['localid']; + else if (!empty($services[0]['delegate'])) + $identity = $services[0]['delegate']; + else + $identity = $claimed_id; + if (isset($services[0]['types']) && is_array($services[0]['types']) && in_array(OPENID_NS_2_0 .'/server', $services[0]['types'])) { $identity = 'http://openid.net/identifier_select/2.0'; } diff -urp sites/all/modules/openid_orig/xrds.inc sites/all/modules/openid/xrds.inc --- sites/all/modules/openid_orig/xrds.inc 2007-05-24 11:01:20.000000000 -0400 +++ sites/all/modules/openid/xrds.inc 2007-07-04 23:06:33.000000000 -0400 @@ -65,6 +65,9 @@ function _xrds_cdata(&$parser, $data) { case 'XRDS/XRD/SERVICE/DELEGATE': $xrds_current_service['delegate'] = $data; break; + case 'XRDS/XRD/SERVICE/LOCALID': + $xrds_current_service['localid'] = $data; + break; } } @@ -76,4 +79,4 @@ function _xrds_strip_namespace($name) { } return $name; -} \ No newline at end of file +}