ID:               36216
 User updated by:  ipmax at freesurf dot fr
 Reported By:      ipmax at freesurf dot fr
-Status:           Feedback
+Status:           Open
 Bug Type:         Sockets related
 Operating System: debian
 PHP Version:      5.1.2
 New Comment:

thanks, i already got 5.1
i can't reinstall php now, but this bug as been reported many times,
since years, so i dont think it is debug today.


Previous Comments:
------------------------------------------------------------------------

[2006-01-31 07:50:40] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.1-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.1-win32-latest.zip



------------------------------------------------------------------------

[2006-01-31 04:52:12] ipmax at freesurf dot fr

You can delete previous post, here is a good example :

This echo "connected," and hangs for ever, timout doesnt works :
---------------------------------
$scfp=fsockopen("generation.elliptic.fr", 8060,&$errno,&$errstr,5);
if(!$scfp) {echo "error"; exit;
} else {
echo "connected,";
fputs($scfp,"GET /admin.cgi\r\n\r\n");

while(!feof($scfp)) {$page .= fgets($scfp);   }
fclose($scfp);

//////////////////////

This works, considering timout is checked in the fgets loop.
stream_set_timeout() replace the bug of fsockopen that doesnt timeout.

$scfp=fsockopen("generation.elliptic.fr", 8060,&$errno,&$errstr,2);
if(!$scfp) {echo "error"; exit;
} else {
echo "connected,";
stream_set_timeout($scfp,2);
fputs($scfp,"GET /admin.cgi\r\n\r\n");

while(!feof($scfp)) {$page .= fgets($scfp); 
 $info = stream_get_meta_data($scfp);
 if ($info['timed_out']) {  echo "timeout"; exit; }
  }
fclose($scfp);

---------------------
PHP 5.1.1-1.dotdeb.2 (cli) (built: Dec  1 2005 12:46:40)

------------------------------------------------------------------------

[2006-01-31 04:50:58] ipmax at freesurf dot fr

Please use this adress to test :

$scfp=fsockopen("generation.elliptic.fr", 8060,&$errno,&$errstr,1);

I dont know what firewall there is, but sometimes, my demo is correct,
on microsoft it is not.

------------------------------------------------------------------------

[2006-01-31 04:45:19] ipmax at freesurf dot fr

did a mistake in the first post, here is the way to understand. Timeout
works only if add stream_set_timeout() to the inloop stream. Why the
fsokopen timeout doesnt timeout ? no idea.

--------------------------------

This echo "connected," and hangs for ever, timout doesnt works :
---------------------------------
$scfp=fsockopen("www.microsoft.com", 111,&$errno,&$errstr,5);
if(!$scfp) {echo "error"; exit;
} else {
echo "connected,";
fputs($scfp,"GET /admin.cgi\r\n\r\n");

while(!feof($scfp)) {$page .= fgets($scfp);   }
fclose($scfp);

//////////////////////

This works, considering timout is checked in the fgets loop.
stream_set_timeout() replace the bug of fsockopen that doesnt timeout.

$scfp=fsockopen("www.microsoft.com", 111,&$errno,&$errstr,2);
if(!$scfp) {echo "error"; exit;
} else {
echo "connected,";
stream_set_timeout($scfp,2);
fputs($scfp,"GET /admin.cgi\r\n\r\n");

while(!feof($scfp)) {$page .= fgets($scfp); 
 $info = stream_get_meta_data($scfp);
 if ($info['timed_out']) {  echo "timeout"; exit; }
  }
fclose($scfp);

---------------------
PHP 5.1.1-1.dotdeb.2 (cli) (built: Dec  1 2005 12:46:40)

------------------------------------------------------------------------

[2006-01-31 04:40:13] ipmax at freesurf dot fr

we are talking here of a fsockopen connection attempt to a non
responding remote server, like a server with DROP iptable firewall.
Noteven responding error or 404, just not responding at all.
fsockopen never timeout, fgets never find the EOF.
=> Hang.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/36216

-- 
Edit this bug report at http://bugs.php.net/?id=36216&edit=1

Reply via email to