Edit report at http://bugs.php.net/bug.php?id=52395&edit=1
ID: 52395 User updated by: john-ubuntu at cornerstonelinux dot co dot uk Reported by: john-ubuntu at cornerstonelinux dot co dot uk Summary: ftp_connect only uses DNS hostnames Status: Open Type: Bug Package: FTP related Operating System: Ubuntu 10.04 PHP Version: 5.3.2 New Comment: New description with better line wrapping: If "localhost" is present in /etc/hosts but does not resolve via DNS then ftp_connect will not connect to it. Most well setup DNS systems will have a "localhost." zone that resolves to 127.0.0.1, but this is not compulsory and some ISPs do not do this. It is traditional for UNIX systems to be able to use local names as defined in /etc/hosts for basic names resolution before DNS. This bug does not appear to occur in other PHP network functions such as IMAP or SMTP, and did not appear in PHP 5.2.4 on Ubuntu 8.04 (and earlier). I first noticed this bug when I upgrade a mail server from Ubuntu 8.04 to Ubuntu 10.04 and the Squirrelmail autorespond plugin (which uses ftp_connect) reported a "failed to connect" error. To replicate this problem you will have to test on a system that does not resolve "localhost" via DNS. Use the "host" command to check you can not do this: -------- $ host -v localhost Trying "localhost.uk.fabit.net" Trying "localhost" Host localhost not found: 3(NXDOMAIN) -------- Previous Comments: ------------------------------------------------------------------------ [2010-07-21 22:09:42] john-ubuntu at cornerstonelinux dot co dot uk Description: ------------ If "localhost" is present in /etc/hosts but does not resolve via DNS then ftp_c\ onnect will not connect to it. Most well setup DNS systems will have a "localhost." zone that resolves to 127.\ 0.0.1, but this is not compulsory and some ISPs do not do this. It is traditional for UNIX systems to be able to use local names as defined in \ /etc/hosts for basic names resolution before DNS. This bug does not appear to occur in other PHP network functions such as IMAP o\ r SMTP, and did not appear in PHP 5.2.4 on Ubuntu 8.04 (and earlier). I first noticed this bug when I upgrade a mail server from Ubuntu 8.04 to Ubunt\ u 10.04 and the Squirrelmail autorespond plugin (which uses ftp_connect) report\ ed a "failed to connect" error. To replicate this problem you will have to test on a system that does not resol\ ve "localhost" via DNS. Use the "host" command to check you can not do this: -------- $ host -v localhost Trying "localhost.uk.fabit.net" Trying "localhost" Host localhost not found: 3(NXDOMAIN) -------- Test script: --------------- <?php $ftp = ftp_connect($ftphost); if (!$ftp) { print "FTP connection failed"; } ?> Expected result: ---------------- An ftp connection with no error message. Actual result: -------------- No ftp connection attempt and my error message "FTP connection failed". ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52395&edit=1