#23131 [Com]: If fsockopen can't open connection, if(!fp) doesn't run
| From: | birkholz at web dot de | 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