lib/ftpd/cmd_pasv.rb in ftpd-1.1.1 vs lib/ftpd/cmd_pasv.rb in ftpd-2.0.0

- old
+ new

@@ -1,6 +1,9 @@ +# frozen_string_literal: true + require_relative 'command_handler' +require_relative 'data_server_factory' module Ftpd class CmdPasv < CommandHandler @@ -8,12 +11,11 @@ ensure_logged_in ensure_not_epsv_all if data_server reply "200 Already in passive mode" else - interface = socket.addr[3] - self.data_server = TCPServer.new(interface, 0) - ip = data_server.addr[3] + self.data_server = data_server_factory.make_tcp_server + ip = config.nat_ip || data_server.addr[3] port = data_server.addr[1] quads = [ ip.scan(/\d+/), port >> 8, port & 0xff,