Module: Telnet

Defined in:
lib/telnet/config.rb,
lib/telnet/server.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_client.rb,
lib/telnet_server.rb,
lib/telnet/version.rb,
lib/telnet/argument_parser.rb,
lib/telnet/instance_methods.rb

Overview

The Telnet module

Defined Under Namespace

Modules: ClientInitializationMethods, ClientInstanceMethods, InstanceMethods, Listenable Classes: ArgumentsParser, Client, ClientChannelInitializer, ConsoleHandler, ModularHandler, Server

Constant Summary collapse

CHANNEL_TYPE =
Java::io.netty.channel.socket.nio.NioSocketChannel.java_class
VERSION =
'1.1.2'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.client_configObject



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/telnet_client.rb', line 32

def client_config
  @client_config ||= {
    host: '0.0.0.0',
    port: 21,
    ssl: false,
    log_level: Logger::INFO,
    quit_commands: %i[bye cease desist exit leave quit stop terminate],
    max_frame_length: 8192,
    delimiter: Java::io.netty.handler.codec.Delimiters.nulDelimiter
  }
end

.server_configObject

rubocop: disable Metrics/MethodLength



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/telnet/config.rb', line 20

def server_config
  @server_config ||= {
    host: '0.0.0.0',
    port: 21,
    ssl: false,
    idle_reading: 5 * 60, # seconds
    idle_writing: 30, # seconds
    log_requests: false,
    log_level: Logger::INFO,
    quit_commands: %i[bye cease desist exit leave quit stop terminate],
    prompt: '>',
    max_frame_length: 8192,
    delimiter: Java::io.netty.handler.codec.Delimiters.lineDelimiter
  }
end

Instance Method Details

#main(args = parse_arguments) ⇒ Object

rubocop: disable Metrics/AbcSize



506
507
508
509
510
511
512
513
514
515
516
# File 'lib/telnet_client.rb', line 506

def main(args = parse_arguments)
  Logging.log_level = args[:log_level]
  ::Telnet::Client.new(options: args, handlers: ::Telnet::ConsoleHandler.new)
rescue Interrupt => e
  warn "\n#{e.class}"
  exit
rescue StandardError => e
  ::Telnet::Client.log.fatal "Unexpected error: #{e.class}: #{e.message}"
  e.backtrace.each { |t| log.debug t } if Logging.log_level == Logger::DEBUG
  exit 1
end

#parse_arguments(arguments_parser = ::Telnet::ArgumentsParser.new) ⇒ Object

class ArgumentsParser



475
476
477
478
479
480
481
482
483
484
485
486
# File 'lib/telnet_client.rb', line 475

def parse_arguments(arguments_parser = ArgumentsParser.new)
  arguments_parser.parser.parse!(ARGV)
  arguments_parser.parse_positional_arguments!
  arguments_parser.options
rescue OptionParser::InvalidArgument, OptionParser::InvalidOption,
       OptionParser::MissingArgument, OptionParser::NeedlessArgument => e
  puts e.message
  puts parser
  exit
rescue OptionParser::AmbiguousOption => e
  abort e.message
end