ID: 51079 Updated by: paj...@php.net Reported By: tony at marston-home dot demon dot co dot uk -Status: Bogus +Status: Feedback Bug Type: Sockets related Operating System: Windows XP PHP Version: 5.2.12 New Comment:
Have you tried with 5.2.13RC2 and 5.3.2RC2? Previous Comments: ------------------------------------------------------------------------ [2010-02-19 10:58:02] tony at marston-home dot demon dot co dot uk Rasmus, before you post a comment like that I suggest you first make yourself aware of the facts. (1) I am not the only one who has reported it, see http://bugs.php.net/bug.php?id=47437 where the suggested "fix" was to disable IPv6 support in Windows. (2) Nobody has ever said that they cannot reproduce the problem. This problem exists in Windows XP with IPv6 support enabled, and with PHP 5.2.12 also with IPv6 support enabled. None of my web browsers (IE, Firefox, Opera, Safari) has a problem with resolving 'localhost' to 127.0.0.1 gethostbyname('localhost') returns '127.0.0.1' without any problem. The CURL extension can send requests to 'localhost' without a problem. I have another Windows XP PC with IPv6 support enabled, running PHP 5.3.0 with IPv6 support disabled, and fsockopen() will accept 'localhost' without falling over. So why can't fsockopen() in 5.2.12 deal with 'localhost', only '127.0.0.1'? Do NOT tell me that this is a Windows XP issue and that I should disable IPv6 support. IPv4 and IPv6 are designed to run alongside each other and are NOT mutually exclusive. The only function on my PC that has a problem with that is fsockopen(), so stop procrastinating and FIX IT! ------------------------------------------------------------------------ [2010-02-18 17:44:10] ras...@php.net You are going to have to debug it yourself. Nobody has been able to reproduce your problem and you are the only one who has reported it. We can't fix something we can't see. ------------------------------------------------------------------------ [2010-02-18 11:20:44] tony at marston-home dot demon dot co dot uk The previous bugs reports have been closed WITHOUT a satisfactory explanation. It is not good enough to say "disable IPv6 support in your operating system" as the problem CLEARLY lies within the code for fsockopen. If IPv6 support is enabled in the operating system it does NOT mean that only IPv6 addresses are allowed, it means that both IPv5 and IPv6 addresses are supported. All of my web browsers (IE, Firefox, Opera, Safari) have no problem in translating 'localhost' to '127.0.0.1'. The PHP gethostbyname() function has no problem in translating 'localhost' to '127.0.0.1'. The PHP cURL extension has no problem in translating 'localhost' to '127.0.0.1'. fsockopen() when running in PHP 5.3.0 has no problem in translating 'localhost' to '127.0.0.1'. So why does fsockopen() in php 5.2.12 have a problem? ------------------------------------------------------------------------ [2010-02-18 11:04:43] j...@php.net -Status: Open +Status: Bogus Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely to be the same. Thank you for your interest in PHP. ------------------------------------------------------------------------ [2010-02-18 10:31:19] tony at marston-home dot demon dot co dot uk Description: ------------ When are you going to provide a satisfactory answer to bugs http://bugs.php.net/bug.php?id=50953 and http://bugs.php.net/bug.php?id=50965? Your only suggestion has been to disable IPv^ support in the operating system, but this is a total red herring. If IPv6 support is enabled in the operating system it does NOT mean that only IPv6 addresses are allowed, it means that both IPv5 and IPv6 addresses are supported. All of my web browsers (IE, Firefox, Opera, Safari) have no problem in translating 'localhost' to '127.0.0.1'. The PHP gethostbyname() function has no problem in translating 'localhost' to '127.0.0.1'. The PHP cURL extension has no problem in translating 'localhost' to '127.0.0.1'. fsockopen() when running in PHP 5.3.0 has no problem in translating 'localhost' to '127.0.0.1'. So why does fsockopen() in php 5.2.12 have a problem? Reproduce code: --------------- function connect($host) { $faultcode = null; $faultstring = null; $conn = fsockopen($host, 80, $faultcode, $faultstring, 20); if (!$conn) { echo 'faultcode=' .$faultcode .', faultstring=' .$faultstring ."\n"; } else { echo "Connected to $host OK\n"; } // if return $conn; } // function $result = connect('localhost'); $result = connect('127.0.0.1'); $result = connect('desktop'); $result = connect('www.tonymarston.net'); Expected result: ---------------- I expect to see the message "Connected to <host> OK" for all values of host. Actual result: -------------- Warning: fsockopen(): unable to connect to localhost:80 faultcode=10060, faultstring=A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. Connected to 127.0.0.1 OK Connected to desktop OK Connected to www.tonymarston.net OK ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=51079&edit=1