Sha256: 42d994344dbbfbbd67dc53ebf6292e21617cafae54f5ef12effa43cf52e7bdf3

Contents?: true

Size: 652 Bytes

Versions: 7

Compression:

Stored size: 652 Bytes

Contents

# frozen_string_literal: true

require_relative 'command_handler'
require_relative 'data_server_factory'

module Ftpd

  class CmdPasv < CommandHandler

    def cmd_pasv(argument)
      ensure_logged_in
      ensure_not_epsv_all
      if data_server
        reply "200 Already in passive mode"
      else
        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,
        ].flatten.join(',')
        reply "227 Entering passive mode (#{quads})"
      end
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ftpd-2.1.0 lib/ftpd/cmd_pasv.rb
ftpd-2.0.5 lib/ftpd/cmd_pasv.rb
ftpd-2.0.4 lib/ftpd/cmd_pasv.rb
ftpd-2.0.3 lib/ftpd/cmd_pasv.rb
ftpd-2.0.2 lib/ftpd/cmd_pasv.rb
ftpd-2.0.1 lib/ftpd/cmd_pasv.rb
ftpd-2.0.0 lib/ftpd/cmd_pasv.rb