Test of tweak to getPages, a=chris

Chris Pollett [2016-09-09 05:Sep:th]
Test of tweak to getPages, a=chris
Filename
src/controllers/AdminController.php
src/controllers/components/SocialComponent.php
src/library/FetchUrl.php
diff --git a/src/controllers/AdminController.php b/src/controllers/AdminController.php
index bd622bfe8..2074eccca 100755
--- a/src/controllers/AdminController.php
+++ b/src/controllers/AdminController.php
@@ -167,10 +167,17 @@ class AdminController extends Controller implements CrawlConstants
                         $_SESSION['USER_ID'] = $user_id;
                         $_REQUEST[C\CSRF_TOKEN] = $this->generateCSRFToken(
                             $_SESSION['USER_ID']);
+                        $preserve_array = [];
+                        if (!empty($_REQUEST['preserve']) &&
+                            $_REQUEST['preserve'] == 'true') {
+                            $preserve_array = [
+                                'a','arg', 'filter', 'group_id',
+                                'just_group_id', 'visible_users', 'user_filter'
+                                ];
+                        }
                         return $this->redirectWithMessage(
                             tl('admin_controller_login_successful'),
-                            ['a','arg', 'filter', 'group_id', 'just_group_id',
-                            'visible_users', 'user_filter']);
+                            $preserve_array);
                     }
                 }
             } else {
diff --git a/src/controllers/components/SocialComponent.php b/src/controllers/components/SocialComponent.php
index c7e5ed676..d3388e542 100644
--- a/src/controllers/components/SocialComponent.php
+++ b/src/controllers/components/SocialComponent.php
@@ -769,7 +769,7 @@ class SocialComponent extends Component implements CrawlConstants
             $_SESSION['USER_ID']);
         $edit_user_url = C\NAME_SERVER . "?c=admin&a=manageGroups".
             "&arg=editgroup&group_id=$add_id&visible_users=true".
-            "&user_filter=$current_username";
+            "&user_filter=$current_username&preserve=true";
         $body = tl('social_component_activate_body',
             $current_username,
             $group_info['GROUP_NAME'])."\n".
@@ -1022,7 +1022,7 @@ class SocialComponent extends Component implements CrawlConstants
                     if (in_array($group['REGISTER_TYPE'],
                         [C\PUBLIC_BROWSE_REQUEST_JOIN, C\PUBLIC_JOIN])) {
                         $post_url = B\feedsUrl("thread", $parent_item["ID"],
-                            false, "group") . "\n";
+                            true, "group") . "preserve=true\n";
                     }
                     $subject = tl('social_component_thread_notification',
                         $parent_item['TITLE']);
@@ -1154,8 +1154,8 @@ class SocialComponent extends Component implements CrawlConstants
                         C\MAIL_SECURITY);
                     $subject = tl('social_component_new_thread_mail',
                         $group['GROUP_NAME']);
-                    $post_url = B\feedsUrl("thread", $thread_id, false,
-                        "group")."\n";
+                    $post_url = B\feedsUrl("thread", $thread_id, true,
+                        "group")."preserve=true\n";
                     $body = tl('social_component_new_thread_body',
                         $group['GROUP_NAME'])."\n".
                         "\"".$title."\"\n".
diff --git a/src/library/FetchUrl.php b/src/library/FetchUrl.php
index f25f8a81c..2ccb6c222 100755
--- a/src/library/FetchUrl.php
+++ b/src/library/FetchUrl.php
@@ -192,14 +192,18 @@ class FetchUrl implements CrawlConstants
         //Wait for responses
         $running = null;
         $memory_limit = metricToInt(ini_get("memory_limit")) * 0.7;
+        $mrc_check = CURLM_CALL_MULTI_PERFORM;
         do {
             $mrc = curl_multi_exec($agent_handler, $running);
             /* 0.05 is to prevent this from being too busy a loop sucking
                up CPU cycle. We check every 0.05 if another page is ready of
                not*/
-            $ready = curl_multi_select($agent_handler, 0.05);
-        } while (memory_get_usage() < $memory_limit &&
-            time() - $start < C\PAGE_TIMEOUT &&  $running > 0 );
+            if ($mrc != CURLM_CALL_MULTI_PERFORM) {
+                $mrc_check = CURLM_OK;
+                $ready = curl_multi_select($agent_handler, 0.05);
+            }
+        } while (memory_get_usage() < $memory_limit && $mrc == $mrc_check &&
+            time() - $start < C\PAGE_TIMEOUT &&  $running > 0);
         if (time() - $start > C\PAGE_TIMEOUT && $timer) {
             crawlLog("  TIMED OUT!!!");
         }
ViewGit