Changeset 118627 in spip-zone


Ignore:
Timestamp:
Nov 14, 2019, 1:58:53 PM (16 months ago)
Author:
cedric@…
Message:

Report des bugfix du core sur le cache_cool_async_curl() + PHPDoc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cache_cool/trunk/cache_cool_options.php

    r118625 r118627  
    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.