Sha256: fe7fd5e7f7a03d164e5e1f70776352d66a094414f8b1adcb4d94521b73a1dcf6

Contents?: true

Size: 586 Bytes

Versions: 7

Compression:

Stored size: 586 Bytes

Contents

# frozen_string_literal: true

require_relative 'command_handler'

module Ftpd

  class CmdMode < CommandHandler

    def cmd_mode(argument)
      syntax_error unless argument
      ensure_logged_in
      name, implemented = TRANSMISSION_MODES[argument]
      error "Invalid mode code", 504 unless name
      error "Mode not implemented", 504 unless implemented
      self.mode = argument
      reply "200 Mode set to #{name}"
    end

    private

    TRANSMISSION_MODES = {
      'B'=>['Block', false],
      'C'=>['Compressed', false],
      'S'=>['Stream', true],
    }

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

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