hirura/hrr_rb_ssh

View on GitHub
lib/hrr_rb_ssh/server.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'hrr_rb_ssh/transport'
require 'hrr_rb_ssh/authentication'
require 'hrr_rb_ssh/connection'

module HrrRbSsh
  class Server
    include Loggable

    def self.start io, options={}, logger: nil
      server = self.new options, logger: logger
      server.start io
    end

    def initialize options={}, logger: nil
      self.logger = logger
      @options = options
    end

    def start io
      log_info { "start server service" }
      transport      = Transport.new      io, Mode::SERVER, @options, logger: logger
      authentication = Authentication.new transport, Mode::SERVER, @options, logger: logger
      connection     = Connection.new     authentication, Mode::SERVER, @options, logger: logger
      begin
        connection.start
      rescue Error::ClosedConnection
      end
      log_info { "server service finished" }
    end
  end
end