Edit report at http://bugs.php.net/bug.php?id=52395&edit=1

 ID:                 52395
 Comment by:         emperorshishire at gmail dot com
 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
 Block user comment: N

 New Comment:

I just recently ran into this problem.  I'm using proftpd as an ftpd. 
Proftpd was initially configured to run from inetd, but I reconfigured
it to run standalone.  The difference was that when configured to run
from inetd, it was running only on ipv4, and when reconfigured to run
standalone, it runs on both ipv4 and ipv6.  Something is definately
going on with ipv4/6 resolution here.


Previous Comments:
------------------------------------------------------------------------
[2010-07-22 14:36:59] john-ubuntu at cornerstonelinux dot co dot uk

Setting status back to "Open" as feedback provided.

------------------------------------------------------------------------
[2010-07-21 22:53:56] john-ubuntu at cornerstonelinux dot co dot uk

The FTP server is running only on the IPv4 localhost:

--------

$ sudo netstat -vnutlp | grep ftpd

tcp        0      0 127.0.0.1:21            0.0.0.0:*              
LISTEN      604/vsftpd      

--------



m...@php.net, you suggest that PHP is only resolving IPv6 addresses.

How can I find out if that is the case, and how can I change that?



Also why would this only effect the FTP functions and not effect the

IMAP and SMTP functions?



Could you also run 'host -v localhost' and compare the output to my

example above to confirm that the system you are using does not have

a DNS server that resolves "localhost" (because most do).

------------------------------------------------------------------------
[2010-07-21 22:43:09] m...@php.net

I just tried that using Ubuntu's PHP on 10.04, and it doesn't have that
problem. Neither does a plain PHP. Are you sure it's not something local
to your setup (like the FTP server listening on a v4 address and PHP
resolving localhost to v6?)

------------------------------------------------------------------------
[2010-07-21 22:12:33] john-ubuntu at cornerstonelinux dot co dot uk

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)

--------

------------------------------------------------------------------------
[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

Reply via email to