Edit report at http://bugs.php.net/bug.php?id=54896&edit=1
ID: 54896 Updated by: cataphr...@php.net Reported by: neweracracker at gmail dot com Summary: Connection to localhost doesn't work in Apache SAPI but works in CLI and CGI -Status: Assigned +Status: Feedback Type: Bug Package: Streams related Operating System: Windows 7 PHP Version: 5.3SVN-2011-05-20 (snap) Assigned To: cataphract Block user comment: N Private report: N New Comment: Please test the snapshot for revision 311730, when available. Previous Comments: ------------------------------------------------------------------------ [2011-06-02 10:46:42] cataphr...@php.net Automatic comment from SVN on behalf of cataphract Revision: http://svn.php.net/viewvc/?view=revision&revision=311730 Log: - Fixed double registering of browscap ini directive. See bug #54896. ------------------------------------------------------------------------ [2011-06-01 19:59:07] cataphr...@php.net Possibly the merge to 5.3 has butchered something. This is caused by the timeout being too low because the ini entry default_socket_timeout is not registered (doesn't appear in phpinfo()). If you pass fsockopen a timeout of, say, 10s, it works correctly. I'll take a closer look later today. ------------------------------------------------------------------------ [2011-06-01 19:43:40] neweracracker at gmail dot com Exactly :) Please review your browser fix since it seems to have caused this. Thank you. ------------------------------------------------------------------------ [2011-06-01 17:11:17] cataphr...@php.net Sorry. I was trying with trunk, not 5.3. I can now reproduce this on 5.3 (but not trunk) on the Apache SAPI (but not with FastCGI). ------------------------------------------------------------------------ [2011-06-01 16:32:23] cataphr...@php.net Works here: Script: var_dump(fsockopen("localhost", 9876)); ncat -4 -k -l 9876 -v -v 15:22:42,3106124 httpd.exe 2504 TCP Reconnect 0:0:0:0:0:0:0:1:6660 -> 0:0:0:0:0:0:0:1:9876 SUCCESS Length: 0, seqnum: 0, connid: 0 15:22:42,8106355 httpd.exe 2504 TCP Reconnect 0:0:0:0:0:0:0:1:6660 -> 0:0:0:0:0:0:0:1:9876 SUCCESS Length: 0, seqnum: 0, connid: 0 15:22:42,8210523 httpd.exe 2504 TCP Connect 127.0.0.1:6661 -> 127.0.0.1:9876 SUCCESS Length: 0, mss: 1460, sackopt: 1, tsopt: 0, wsopt: 1, rcvwin: 8192, rcvwinscale: 8, sndwinscale: 8, seqnum: 0, connid: 0 15:22:42,8216731 httpd.exe 2504 TCP Disconnect 127.0.0.1:6661 -> 127.0.0.1:9876 SUCCESS Length: 0, seqnum: 0, connid: 0 So tries IPv6, fails, then tries IPv4. Now with a process listening on IPv6: ncat -6 -k -l 9876 -v -v 15:25:44,6140323 httpd.exe 2504 TCP Accept 0:0:0:0:0:0:0:1:6672 -> 0:0:0:0:0:0:0:1:9876 SUCCESS Length: 0, mss: 1440, sackopt: 1, tsopt: 0, wsopt: 1, rcvwin: 8192, rcvwinscale: 8, sndwinscale: 8, seqnum: 0, connid: 0 15:25:44,6238583 httpd.exe 2504 TCP Disconnect 0:0:0:0:0:0:0:1:6672 -> 0:0:0:0:0:0:0:1:9876 SUCCESS Length: 0, seqnum: 0, connid: 0 Tries with IPv6 and works the first time. As expected. The only normal case when "127.0.0.1" would work but not localhost with a service listening only with IPv4 is if the packet for the initial attempt with IPv6 would get dropped instead of the OS getting a RST packet back rejecting the connection. ------------------------------------------------------------------------ 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/bug.php?id=54896 -- Edit this bug report at http://bugs.php.net/bug.php?id=54896&edit=1