Changeset 120811 in spip-zone


Ignore:
Timestamp:
Jan 26, 2020, 3:32:19 PM (17 months ago)
Author:
cedric@…
Message:

Report de r118627 : Report des bugfix du core sur le cache_cool_async_curl() + PHPDoc
Author: cedric@…
Date: 2019-11-14 14:58:53 +0100 (Jeu, 14 nov 2019)

Location:
_plugins_/cache_cool
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cache_cool

  • _plugins_/cache_cool/cache_cool_options.php

    r120810 r120811  
    314314}
    315315
     316
     317/**
     318 * Un curl async
     319 * @param string $url
     320 * @return bool
     321 */
    316322function cache_cool_async_curl($url){
    317323        // Si fsockopen est possible, on lance l'url via un socket
     
    321327                $fp = @fsockopen($parts['host'],isset($parts['port'])?$parts['port']:80,$errno, $errstr, 30);
    322328                if ($fp) {
     329                        $timeout = 200; // ms
     330                        stream_set_timeout($fp, 0, $timeout * 1000);
    323331                        $query = $parts['path'].($parts['query']?"?".$parts['query']:"");
    324332                        $out = "GET ".$query." HTTP/1.1\r\n";
     
    326334                        $out.= "Connection: Close\r\n\r\n";
    327335                        fwrite($fp, $out);
     336                        spip_timer('cache_cool_async_curl');
     337                        $t = 0;
     338                        // on lit la reponse si possible pour fermer proprement la connexion
     339                        // avec un timeout total de 200ms pour ne pas se bloquer
     340                        while (!feof($fp) and $t < $timeout) {
     341                                @fgets($fp, 1024);
     342                                $t += spip_timer('cache_cool_async_curl', true);
     343                                spip_timer('cache_cool_async_curl');
     344                        }
    328345                        fclose($fp);
    329346                        return true;
     
    346363        return false;
    347364}
    348 ?>
Note: See TracChangeset for help on using the changeset viewer.