Sha256: 5b443baaacfdd55883ee089371a63ea1c9ba17d5578678888299fa6d57e8e260

Contents?: true

Size: 615 Bytes

Versions: 11

Compression:

Stored size: 615 Bytes

Contents

require_relative 'command_handler'

module Ftpd

  # The Data Port (PORT) command.

  class CmdPort < CommandHandler

    def cmd_port(argument)
      ensure_logged_in
      ensure_not_epsv_all
      pieces = argument.split(/,/)
      syntax_error unless pieces.size == 6
      pieces.collect! do |s|
        syntax_error unless s =~ /^\d{1,3}$/
        i = s.to_i
        syntax_error unless (0..255) === i
        i
      end
      hostname = pieces[0..3].join('.')
      port = pieces[4] << 8 | pieces[5]
      set_active_mode_address hostname, port
      reply "200 PORT command successful"
    end

  end

end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
ftpd-1.1.1 lib/ftpd/cmd_port.rb
ftpd-1.1.0 lib/ftpd/cmd_port.rb
investtools-ftpd-1.0.1 lib/ftpd/cmd_port.rb
ftpd-1.0.1 lib/ftpd/cmd_port.rb
ftpd-1.0.0 lib/ftpd/cmd_port.rb
ftpd-0.17.0 lib/ftpd/cmd_port.rb
ftpd-0.16.0 lib/ftpd/cmd_port.rb
ftpd-0.15.0 lib/ftpd/cmd_port.rb
ftpd-0.14.0 lib/ftpd/cmd_port.rb
ftpd-0.13.0 lib/ftpd/cmd_port.rb
ftpd-0.12.0 lib/ftpd/cmd_port.rb