You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2012/07/11 02:18:34 UTC

[jira] [Resolved] (NET-462) FTPClient in PASSIVE_LOCAL_DATA_CONNECTION_MODE cannot work when host have several different IP

     [ https://issues.apache.org/jira/browse/NET-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebb resolved NET-462.
----------------------

    Resolution: Fixed

Thanks, patch applied with minor changes; also added method

setPassiveLocalIPAddress(InetAddress inetAddress)

for completeness
                
> FTPClient in PASSIVE_LOCAL_DATA_CONNECTION_MODE cannot work when host have several different IP
> -----------------------------------------------------------------------------------------------
>
>                 Key: NET-462
>                 URL: https://issues.apache.org/jira/browse/NET-462
>             Project: Commons Net
>          Issue Type: Improvement
>          Components: FTP
>    Affects Versions: 3.1
>         Environment: All OS,for example linux or windows and so on
>            Reporter: Junsheng Chen
>            Priority: Minor
>              Labels: ActiveIp, FTPClient, PASSIVE_LOCAL_DATA_CONNECTION_MODE
>             Fix For: 3.2
>
>         Attachments: ftp-bindlocal.diff
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> When host have several different IP and client setting to PASSIVE_LOCAL_DATA_CONNECTION_MODE,_openDataConnection_ creating socket may use the unexpected ip。
> For example, The host have two Ips, one for intra and the another for extern, only the extern one can be connect with the outside。But when in PASSIVE_LOCAL_DATA_CONNECTION_MODE, FTPClient may be select the intra Ip, So it didn't work。
> So I change code like this, it can work normally by the specific ip.
> Code:
> In FTPClient._openDataConnection_(String command, String arg),line 761 change as bellow:
> socket = _socketFactory_.createSocket();
>             
> // add begin
> // local as client, transfer data must use the appointed local host
> socket.bind(new InetSocketAddress(getHostAddress(), 0));
> // add end
> After log in success,User can set the ip which he want to use by call the method in FTPClient:
> setActiveExternalIPAddress(String ip); 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira