Issue #13382 has been updated by shugo (Shugo Maeda).


osa (Shunsuke OSA) wrote:
> Thank you so much for your survey.
> 
> If we translate java's `setReportActiveExternalIPAddress()` into Ruby method literally,  it seems to be `report_active_external_ip_address=`.
> But this name is difficult to understand for me.
> ("report" looks like verb and "active external IP address" doesn't mean "external IP address for active *mode*".)
> 
> So, how about `data_listening_address=` and `data_listening_port=`.
> 
> These names involve below.
> 
> - Address (or port) for data connection
> - Address (or port) for active mode 
>   - Only active mode listens data connection.
> 
> I don't cling to my suggestion.
> Other expressive names are very welcome.

The name data_listening_address= seems misleading because it doesn't
change the address to be bound.
And data_listening_port= is less flexible than setActivePortRange()
because it doesn't allow multiple port numbers.

So I prefer the following APIs:

* data_port_address = addr
* data_port_range = min .. max


----------------------------------------
Feature #13382: [PATCH] Options for FTP PORT command
https://bugs.ruby-lang.org/issues/13382#change-64257

* Author: osa (Shunsuke OSA)
* Status: Open
* Priority: Normal
* Assignee: shugo (Shugo Maeda)
* Target version: 
----------------------------------------
# Abstract

Add options to Net::FTP to set data listening host and port.

# Background

Net::FTP sends local address and default port to remote FTP server.
In FTP active mode, remote server will connect to client to establish data connection, but it will fail if there is NAT in network.
(NAT doesn't rewrite address and port in PORT command because they are not in packet header but payload)
So, it's necessary to set host and port for FTP PORT command explicitly.

# Real use cases

Active FTP is not working in AWS EC2.

- https://forums.aws.amazon.com/thread.jspa?messageID=75667 (Login required)
- http://osa.hatenablog.com/entry/2015/02/24/134826 (Japanese)

# Pull request

- https://github.com/ruby/ruby/pull/1561



-- 
https://bugs.ruby-lang.org/