php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #48946 fgets hangs on fsockopen stream
Submitted: 2009-07-16 14:04 UTC Modified: 2009-07-23 22:59 UTC
From: trutas dot ctx at gmail dot com Assigned:
Status: Not a bug Package: IIS related
PHP Version: 5.3.0 OS: Windows Server 2003 x64 IIS6.0
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: trutas dot ctx at gmail dot com
New email:
PHP Version: OS:

 

 [2009-07-16 14:04 UTC] trutas dot ctx at gmail dot com
Description:
------------
fgets() hangs up to script timeout (60secs) on an opened fsockopen stream.
stream_set_timeout is set for 30 secs - but apparently does nothing.

For now i'll try to work around it using curl and the intranet squid proxy server.

Reproduce code:
---------------
$fp = fsockopen("intranet.mydomain.net", 443, $errno, $errstr, 30);
if($fp) {
    if(fputs($fp, $headers, strlen($headers))){

      $result = '';
      stream_set_timeout($fp, 30);  //should timeout in 30 secs

      while(!feof($fp)) {
        $result .=fgets($fp, 4096);  //scripts hangs up to script timeout in this line
      }

      fclose($fp);

      print $result;
    }
}

Expected result:
----------------
$result gets printed or error gets thrown out somewhere.

Actual result:
--------------
Maximum execution time of 60 seconds exceeded in...

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-07-23 22:59 UTC] jani@php.net
You should actually check if there was timeout in your loop. RTFM at 
http://php.net/stream_set_timeout tells:

"When the stream times out, the 'timed_out' key of the array returned by 
stream_get_meta_data() is set to TRUE, although no error/warning is 
generated."
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jan 02 13:01:30 2025 UTC