]> git.mxchange.org Git - friendica.git/blobdiff - include/onepoll.php
Automatically refresh after two minutes when system is overloaded
[friendica.git] / include / onepoll.php
index 516f1dfd4d7308096480f14ce108afb5ba570ec5..eb1045de142957dcab4e08d8b66ff8aa3ecb4750 100644 (file)
@@ -27,12 +27,10 @@ function onepoll_run(&$argv, &$argc){
 
        require_once('include/session.php');
        require_once('include/datetime.php');
-       require_once('library/simplepie/simplepie.inc');
        require_once('include/items.php');
        require_once('include/Contact.php');
        require_once('include/email.php');
        require_once('include/socgraph.php');
-       require_once('include/pidfile.php');
        require_once('include/queue_fn.php');
 
        load_config('config');
@@ -61,18 +59,10 @@ function onepoll_run(&$argv, &$argc){
                return;
        }
 
-       $lockpath = get_lockpath();
-       if ($lockpath != '') {
-               $pidfile = new pidfile($lockpath, 'onepoll'.$contact_id);
-               if ($pidfile->is_already_running()) {
-                       logger("onepoll: Already running for contact ".$contact_id);
-                       if ($pidfile->running_time() > 9*60) {
-                               $pidfile->kill();
-                               logger("killed stale process");
-                       }
-                       exit;
-               }
-       }
+       // Don't check this stuff if the function is called by the poller
+       if (App::callstack() != "poller_run")
+               if (App::is_already_running('onepoll'.$contact_id, '', 540))
+                       return;
 
        $d = datetime_convert();
 
@@ -335,7 +325,9 @@ function onepoll_run(&$argv, &$argc){
                if($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['blocked'] || $contact['readonly'])
                        return;
 
-               $xml = fetch_url($contact['poll']);
+               $cookiejar = tempnam(get_temppath(), 'cookiejar-onepoll-');
+               $xml = fetch_url($contact['poll'], false, $redirects, 0, Null, $cookiejar);
+               unlink($cookiejar);
        }
        elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {