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,