function pullRemoteProfile()
{
$validate = new Validate();
- $this->profile_uri = $this->trimmed('profile');
+ $this->profile_uri = Discovery::normalize($this->trimmed('profile'));
try {
- if ($validate->email($this->profile_uri)) {
+ if (Discovery::isAcct($this->profile_uri) && $validate->email(mb_substr($this->profile_uri, 5))) {
$this->oprofile = Ostatus_profile::ensureWebfinger($this->profile_uri);
} else if ($validate->uri($this->profile_uri)) {
$this->oprofile = Ostatus_profile::ensureProfileURL($this->profile_uri);
*/
public static function ensureWebfinger($addr)
{
- // First, try the cache
+ // Normalize $addr, i.e. add 'acct:' if missing
+ $addr = Discovery::normalize($addr);
+ // Try the cache
$uri = self::cacheGet(sprintf('ostatus_profile:webfinger:%s', $addr));
if ($uri !== false) {
}
// Try looking it up
- $oprofile = Ostatus_profile::getKV('uri', Discovery::normalize($addr));
+ $oprofile = Ostatus_profile::getKV('uri', $addr);
if ($oprofile instanceof Ostatus_profile) {
self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), $oprofile->getUri());