diff --git a/include/redir.php b/include/redir.php index 3fbbf4c130..ba7d02993f 100644 --- a/include/redir.php +++ b/include/redir.php @@ -2,6 +2,11 @@ function auto_redir(&$a, $contact_nick) { + // prevent looping + + if(intval($_REQUEST,'redir')) + return; + if((! $contact_nick) || ($contact_nick === $a->user['nickname'])) return; @@ -20,12 +25,15 @@ function auto_redir(&$a, $contact_nick) { if($domain_st === false) return; $baseurl = substr($baseurl, $domain_st + 3); + $nurl = normalise_link($baseurl); + $r = q("SELECT id FROM contact WHERE uid = ( SELECT uid FROM user WHERE nickname = '%s' LIMIT 1 ) - AND nick = '%s' AND self = 0 AND url LIKE '%%%s%%' AND blocked = 0 AND pending = 0 LIMIT 1", + AND nick = '%s' AND self = 0 AND ( url LIKE '%%%s%%' or nurl LIKE '%%%s%%' ) AND blocked = 0 AND pending = 0 LIMIT 1", dbesc($contact_nick), dbesc($a->user['nickname']), - dbesc($baseurl) + dbesc($baseurl), + dbesc($nurl) ); if((!$r) || (! count($r)) || $r[0]['id'] == remote_user()) diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php index 8abe42abbb..1d3bbd4420 100644 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -493,7 +493,7 @@ function dfrn_poll_content(&$a) { switch($destination_url) { case 'profile': - $dest = $a->get_baseurl() . '/profile/' . $profile . '?tab=profile'; + $dest = $a->get_baseurl() . '/profile/' . $profile . '?f=&tab=profile'; break; case 'photos': $dest = $a->get_baseurl() . '/photos/' . $profile; @@ -503,7 +503,7 @@ function dfrn_poll_content(&$a) { $dest = $a->get_baseurl() . '/profile/' . $profile; break; default: - $dest = $destination_url; + $dest = $destination_url . '?f=&redir=1'; break; }