[ 
https://issues.apache.org/jira/browse/NET-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13411093#comment-13411093
 ] 

Sebb commented on NET-462:
--------------------------

URL: http://svn.apache.org/viewvc?rev=1359960&view=rev
Log:
NET-462 FTPClient in PASSIVE_LOCAL_DATA_CONNECTION_MODE cannot work when host 
have several different IP

Modified:
    commons/proper/net/trunk/src/changes/changes.xml
    
commons/proper/net/trunk/src/main/java/org/apache/commons/net/ftp/FTPClient.java

                
> 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


Reply via email to