fsockopen fails if port blocked by firewall - PHP 4.0.6 / Apache / Linux
| From: | Neil Smith | Date: | Mon, 04 Nov 2002 15:06:33 +0000 |
| Subject: | fsockopen fails if port blocked by firewall - PHP 4.0.6 / Apache / Linux | ||
| Groups: | php.install | ||
| Request: | Send a blank email to php-install+get-9017@lists.php.net to get a copy of this message | ||
Hello List -
I am having a problem with fsockopen since my ISP upgraded their linux server. The same function works just fine on another linux server and PHP version (using a different ISP).
This fsockopen function previously worked as expected, returning within the specified timeout (2 sec) if a socket connection attempt to client is rejected, eg by a firewall.
For connection to port 1720, (then immediate close of socket if fsockopen returns true) I use :
$fsock=fsockopen( $address, 1720 , &$errno, &$errmesg , 2);
I have also tried 2.0 (float) rather than 2 as per PHP manual, this makes no difference.
http://www.php.net/manual/en/function.fsockopen.php
The specific symptoms :
No listener on client port 1720 : Succeeds
Listening client socket on port 1720 Succeeds
Client firewall configured to allow connections Succeeds
Client firewall configured to deny connections Fails
The fail mode is that fsockopen does *not* return after the specified timeout, and the script itself eventually times out at the default 30 sec.
Working configuration : PHP 4.1.2, Linux Redhat 2.2.20, Apache 1.3.22
Http Env vars :i386-redhat-linux-gnu
Non-working configuration : PHP 4.0.6, Linux Redhat 2.4.9-21smp i686, Apache 1.3.27
Http Env vars : i386-slackware-linux-gnu
Anybody able to offer any help or point me at a way to step round this problem ? I thought of setting up an XML feed by HTTP Post from one machine to another - they are on diffrent networks so I worry about latency.
Thanks for any help or suggestions to fix this problem, or any anecdotal evidence I can use to fix it !!
Neil Smith.