Class: HrrRbSftp::Server

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/hrr_rb_sftp/server.rb

Instance Attribute Summary

Attributes included from Loggable

#logger

Instance Method Summary collapse

Methods included from Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn

Constructor Details

#initialize(logger: nil) ⇒ Server

Returns a new instance of Server.



5
6
7
# File 'lib/hrr_rb_sftp/server.rb', line 5

def initialize logger: nil
  self.logger = logger
end

Instance Method Details

#start(io_in, io_out, io_err) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/hrr_rb_sftp/server.rb', line 9

def start io_in, io_out, io_err
  log_info { "start server" }

  @io_in  = io_in
  @io_out = io_out
  @io_err = io_err

  @receiver = Receiver.new(@io_in)
  @sender   = Sender.new(@io_out)

  @version = negotiate_version

  @protocol = Protocol.new(@version, logger: logger)

  begin
    respond_to_requests
  rescue => e
    log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
    raise
  ensure
    close_handles
  end

  log_info { "server finished" }
end