#23131 [Com]: If fsockopen can't open connection, if(!fp) doesn't run

From: Date: Tue, 05 Apr 2005 12:47:58 +0000
Subject: #23131 [Com]: If fsockopen can't open connection, if(!fp) doesn't run
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-76381@lists.php.net to get a copy of this message
ID: 23131 Comment by: birkholz at web dot de Reported By: kangstarr at hotmail dot com Status: No Feedback Bug Type: Sockets related Operating System: Windows XP PHP Version: 4.3.1 New Comment: On my windows-system with apache 2.0.53 and php 4.3.11 a call to fsockopen with the timeout-parameter seems to change the maximum-execution-time out the complete script to the timeout-value passed to fsockopen. I the connection-try failes because of a timeout, php raises a fatal error "Fatal error: Maximum execution time of 10 seconds exceeded in test.php on line xxx" and terminates the script-execution. It should not terminate the script but return FASLE after 10 seconds and than should fill the passed $errstr-var with "Connection timeout" or something like that and the $errno-var with the corresponding error-number. On this code: <?php // This hostname should not answer on the socket-request // On windows-Systems any call to a non-open port will // produce a timeout if ($fp = fsockopen('localhost',12345,$errno, $errstr, 10)) { print "connection established"; } else { print "Error: \"$errstr\" [$errno] occured."; } print "\nAfter the fsockopen()" ?> it should return: SNIP--> Error: "Connection timeout" [123] occured. After the fsockopen() <--SNIP but returns SNIP--> Warning: fsockopen(): unable to connect to localhost:12345 in D:\htdocs\test.php on line 5 Fatal error: Maximum execution time of 10 seconds exceeded in D:\htdocs\test.php on line 5 <--SNIP The general error-handling of the fsockopen()-function should fixed to fill the passed $errno and $errstr variables instead of raising warnings. Greets, Dennis Previous Comments: ------------------------------------------------------------------------ [2003-04-21 09:22:09] sniper@php.net No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. ------------------------------------------------------------------------ [2003-04-09 10:06:51] wez@php.net Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip Probably already fixed; please try a snapshot ------------------------------------------------------------------------ [2003-04-09 09:24:19] kangstarr at hotmail dot com Ok, I forgot to note that I'm calling the php from another php. index.php includes scastxml.php scastxml.php is where the script is located. When I go directly to scastxml.php the script works fine. When I goto index.php which includes the scastxml.php, the script only works if I set the fsockopen timeout to 5 or less. Can someone explain to me why this happens?? ------------------------------------------------------------------------ [2003-04-09 09:01:42] kangstarr at hotmail dot com $fp = fsockopen("kang.kicks-ass.net", "8000", &$errno, &$errstr, 20); //open connection if(!$fp) { echo "No Connection"; $success=2; //set if no connection } Basically I'm checking to see if my SHOUTcast server is running. If the shoutcast server is not running, and it tries to open the connection I get these html warnings. Warning: fsockopen() [function.fsockopen]: php_hostconnect: connect failed in e:\inetpub\wwwroot\scast\scastxml.php on line 37 Warning: fsockopen() [function.fsockopen]: unable to connect to kang.kicks-ass.net:8000 in e:\inetpub\wwwroot\scast\scastxml.php on line 37 Fatal error: Maximum execution time of 30 seconds exceeded in e:\inetpub\wwwroot\scast\scastxml.php on line 37 I'm running WinXP, Apache 1.3, PHP 4.3.1 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=23131&edit=1

« previous php.bugs (#76381) next »