]> git.mxchange.org Git - friendica.git/commitdiff
ensure that auto_redir does not loop
authorfriendica <info@friendica.com>
Wed, 21 Nov 2012 23:41:14 +0000 (15:41 -0800)
committerfriendica <info@friendica.com>
Wed, 21 Nov 2012 23:41:14 +0000 (15:41 -0800)
include/redir.php
mod/dfrn_poll.php

index 3fbbf4c1302f5a8ae12a616f9b8a1444e5c74b54..ba7d02993f86526a9cd33cf180f719aca3025209 100644 (file)
@@ -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())
index 8abe42abbb804580b95edcace359855f42729cf8..1d3bbd4420aa16d45297f5c672639a1bea5190ae 100644 (file)
@@ -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;
                        }