[ https://issues.apache.org/jira/browse/NET-346?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sebb resolved NET-346. ---------------------- Resolution: Fixed Fix Version/s: 3.1 Applied, with a minor change: getReportHostAddress now defers to getHostAddress if __reportActiveExternalHost is null. > FTP should support reporting NATed external IP address > ------------------------------------------------------ > > Key: NET-346 > URL: https://issues.apache.org/jira/browse/NET-346 > Project: Commons Net > Issue Type: Improvement > Components: FTP > Affects Versions: 2.2 > Reporter: Kevin Samuel > Fix For: 3.1 > > Attachments: FTPClient.java, ftpclient.patch > > Original Estimate: 1h > Remaining Estimate: 1h > > When trying to do an active FTP transfer as client from behind a firewall > with NAT, setActiveExternalIPAddress is not sufficient, as you can only > report the internal IP of the client (e.g. 192.168.1.2 vs 72.14.X.X) > FTPClient should support an additional function to set the REPORTABLE > external active IP Address > I created and successfully tested a fix for this: > ADD PRIVATE MEMBER: > private InetAddress __reportActiveExternalHost; > IN __initDefaults(): > __reportActiveExternalHost = null; > ADD PUBLIC FUNCTIONS: > private InetAddress getReportHostAddress() > { > if (__reportActiveExternalHost != null) > { > return __reportActiveExternalHost ; > } > else if (__activeExternalHost != null) > { > return __activeExternalHost; > } > else > { > // default local address > return getLocalAddress(); > } > } > public void setReportActiveExternalIPAddress(String ipAddress) throws > UnknownHostException > { > this.__reportActiveExternalHost = InetAddress.getByName(ipAddress); > } > IN _openDataConnection_: > if (isInet6Address) > { > if > (!FTPReply.isPositiveCompletion(eprt(getReportHostAddress(), > server.getLocalPort()))) > { > server.close(); > return null; > } > } > else > { > if > (!FTPReply.isPositiveCompletion(port(getReportHostAddress(), > server.getLocalPort()))) > { > server.close(); > return null; > } > } > will also attach changed file > sorry I am not familiar with the correct way to submit patches, although I > tried to model this on #NET-285 as much as possible -- 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