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

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.


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

[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.

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

[2006-01-31 04:33:20] ipmax at freesurf dot fr

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,";
stream_set_timeout($scfp,2);
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-30 21:04:03] [EMAIL PROTECTED]

>Hello,
>i got the bug of fsockopen no timeout
>on different debian and latest php
>you say it works perfectly, did you tried with a blocked >adress or
non existant domain ?
Yes, I did.

>did you got it to work on debian ?
No, since I don't use debian and have no chance to test it there. So if
you're able to provide some more information - please provide it.
And please use this system instead of mailing privately so we can track
the things.

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

[2006-01-30 20:47:14] [EMAIL PROTECTED]

Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to "Open".

Thank you for your interest in PHP.


Works fine here.

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

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