hrr_rb_ssh 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68b00bf02ef65dbb826a876f2360b378da19601e2b1171a3b2ddcc1625d4b06f
4
- data.tar.gz: 2f6c285b85efc9d41631314f894f87dc048f96ab3e3e392b5f6cf0e96fad0b72
3
+ metadata.gz: ec455249771885393139c2cbe162fa253e5416d2c9bf27478d20073027bf2f18
4
+ data.tar.gz: 6f73965ad0835b838ea26dfa496961d2c52052068957b963e8a02ef735e4f0c7
5
5
  SHA512:
6
- metadata.gz: 587d108b0e0752969de0cf53b2acac0ad1cf76afe5587f18cc05f9170d25a5fc21f2be3163f00958cd8945b77ea416968acb39969b4bd3db7e8abe1dc26c9ce8
7
- data.tar.gz: 4f02efd3b27eeeb37ad4b0c3636a88624efb0d9ae8f5aabefe433821a75162fc583458579306be1d5fdc69dbe552730f199448cec8a6777748c5d92cc531fcb4
6
+ metadata.gz: a94383816e8e2fb807a0db84190c07d2c11614169d2ccb4755673b838d273a1b2168beef44ebd7c8028401af618b08075ae4f811d1b02213457a69d0ffe75b5b
7
+ data.tar.gz: 659d58c1b86649825764f7db02eeb243ac6c07b458f4407b78f9fb0108b3d1aa58ab1edc0fe6c77ea6989bafcad48c2d56456c8f74c1107e5a4c1ffff3adb307
data/demo/client.rb CHANGED
@@ -10,8 +10,15 @@ rescue LoadError
10
10
  require 'hrr_rb_ssh'
11
11
  end
12
12
 
13
+ class MyLoggerFormatter < ::Logger::Formatter
14
+ def call severity, time, progname, msg
15
+ "%s, [%s#%d.%x] %5s -- %s: %s\n" % [severity[0..0], format_datetime(time), Process.pid, Thread.current.object_id, severity, progname, msg2str(msg)]
16
+ end
17
+ end
18
+
13
19
  logger = Logger.new STDOUT
14
20
  logger.level = Logger::DEBUG
21
+ logger.formatter = MyLoggerFormatter.new
15
22
 
16
23
  target = ['localhost', 10022]
17
24
  options = {
data/demo/echo_server.rb CHANGED
@@ -41,8 +41,15 @@ def start_service io, logger=nil
41
41
  server.start io
42
42
  end
43
43
 
44
+ class MyLoggerFormatter < ::Logger::Formatter
45
+ def call severity, time, progname, msg
46
+ "%s, [%s#%d.%x] %5s -- %s: %s\n" % [severity[0..0], format_datetime(time), Process.pid, Thread.current.object_id, severity, progname, msg2str(msg)]
47
+ end
48
+ end
49
+
44
50
  logger = Logger.new STDOUT
45
51
  logger.level = Logger::INFO
52
+ logger.formatter = MyLoggerFormatter.new
46
53
 
47
54
  server = TCPServer.new 10022
48
55
  loop do
@@ -69,8 +69,16 @@ def start_service io, logger=nil
69
69
  end
70
70
 
71
71
 
72
+ class MyLoggerFormatter < ::Logger::Formatter
73
+ def call severity, time, progname, msg
74
+ "%s, [%s#%d.%x] %5s -- %s: %s\n" % [severity[0..0], format_datetime(time), Process.pid, Thread.current.object_id, severity, progname, msg2str(msg)]
75
+ end
76
+ end
77
+
78
+
72
79
  logger = Logger.new STDOUT
73
80
  logger.level = Logger::INFO
81
+ logger.formatter = MyLoggerFormatter.new
74
82
 
75
83
  server = TCPServer.new 10022
76
84
  loop do
@@ -63,8 +63,16 @@ def start_service io, logger=nil
63
63
  end
64
64
 
65
65
 
66
+ class MyLoggerFormatter < ::Logger::Formatter
67
+ def call severity, time, progname, msg
68
+ "%s, [%s#%d.%x] %5s -- %s: %s\n" % [severity[0..0], format_datetime(time), Process.pid, Thread.current.object_id, severity, progname, msg2str(msg)]
69
+ end
70
+ end
71
+
72
+
66
73
  logger = Logger.new STDOUT
67
74
  logger.level = Logger::INFO
75
+ logger.formatter = MyLoggerFormatter.new
68
76
 
69
77
  server = TCPServer.new 10022
70
78
  loop do
data/demo/server.rb CHANGED
@@ -92,8 +92,16 @@ OfeosJOO9twerD7pPhmXREkygblPsEXaVA==
92
92
  end
93
93
 
94
94
 
95
+ class MyLoggerFormatter < ::Logger::Formatter
96
+ def call severity, time, progname, msg
97
+ "%s, [%s#%d.%x] %5s -- %s: %s\n" % [severity[0..0], format_datetime(time), Process.pid, Thread.current.object_id, severity, progname, msg2str(msg)]
98
+ end
99
+ end
100
+
101
+
95
102
  logger = Logger.new STDOUT
96
103
  logger.level = Logger::INFO
104
+ logger.formatter = MyLoggerFormatter.new
97
105
 
98
106
  server = TCPServer.new 10022
99
107
  loop do
@@ -49,8 +49,15 @@ def start_service io, logger=nil
49
49
  server.start io
50
50
  end
51
51
 
52
+ class MyLoggerFormatter < ::Logger::Formatter
53
+ def call severity, time, progname, msg
54
+ "%s, [%s#%d.%x] %5s -- %s: %s\n" % [severity[0..0], format_datetime(time), Process.pid, Thread.current.object_id, severity, progname, msg2str(msg)]
55
+ end
56
+ end
57
+
52
58
  logger = Logger.new STDOUT
53
59
  logger.level = Logger::INFO
60
+ logger.formatter = MyLoggerFormatter.new
54
61
 
55
62
  server = TCPServer.new 10022
56
63
  while true
@@ -33,6 +33,7 @@ module HrrRbSsh
33
33
  begin
34
34
  @transport.send payload
35
35
  rescue Error::ClosedTransport
36
+ close
36
37
  raise Error::ClosedAuthentication
37
38
  end
38
39
  end
@@ -42,19 +43,28 @@ module HrrRbSsh
42
43
  begin
43
44
  @transport.receive
44
45
  rescue Error::ClosedTransport
46
+ close
45
47
  raise Error::ClosedAuthentication
46
48
  end
47
49
  end
48
50
 
49
51
  def start
50
- @transport.start
51
- authenticate
52
+ log_info { "start authentication" }
53
+ begin
54
+ @transport.start
55
+ authenticate
56
+ rescue Error::ClosedTransport
57
+ close
58
+ raise Error::ClosedAuthentication
59
+ end
52
60
  end
53
61
 
54
62
  def close
55
63
  return if @closed
64
+ log_info { "close authentication" }
56
65
  @closed = true
57
66
  @transport.close
67
+ log_info { "authentication closed" }
58
68
  end
59
69
 
60
70
  def closed?
@@ -121,8 +131,8 @@ module HrrRbSsh
121
131
  send_userauth_failure authentication_methods, false
122
132
  end
123
133
  else
124
- @closed = true
125
- raise
134
+ close
135
+ raise Error::ClosedAuthentication
126
136
  end
127
137
  end
128
138
  end
@@ -49,7 +49,12 @@ module HrrRbSsh
49
49
 
50
50
  def start foreground: true
51
51
  log_info { "start connection" }
52
- @authentication.start
52
+ begin
53
+ @authentication.start
54
+ rescue Error::ClosedAuthentication
55
+ close
56
+ raise Error::ClosedConnection
57
+ end
53
58
  @closed = false
54
59
  @connection_loop_thread = connection_loop_thread
55
60
  if foreground
@@ -62,7 +67,8 @@ module HrrRbSsh
62
67
  end
63
68
 
64
69
  def close
65
- log_info { "closing connection" }
70
+ return if @closed
71
+ log_info { "close connection" }
66
72
  @closed = true
67
73
  @authentication.close
68
74
  @channels.values.each do |channel|
@@ -74,7 +80,7 @@ module HrrRbSsh
74
80
  end
75
81
  @channels.clear
76
82
  @global_request_handler.close
77
- @connection_loop_thread.join unless @connection_loop_thread == Thread.current
83
+ @connection_loop_thread.join if @connection_loop_thread && @connection_loop_thread != Thread.current
78
84
  log_info { "connection closed" }
79
85
  end
80
86
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  module HrrRbSsh
5
5
  class Error
6
- class ClosedAuthentication < Error
6
+ class ClosedAuthentication < StandardError
7
7
  end
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  module HrrRbSsh
5
5
  class Error
6
- class ClosedConnection < Error
6
+ class ClosedConnection < StandardError
7
7
  end
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  module HrrRbSsh
5
5
  class Error
6
- class ClosedTransport < Error
6
+ class ClosedTransport < StandardError
7
7
  end
8
8
  end
9
9
  end
@@ -25,7 +25,11 @@ module HrrRbSsh
25
25
  transport = Transport.new io, Mode::SERVER, @options, logger: logger
26
26
  authentication = Authentication.new transport, Mode::SERVER, @options, logger: logger
27
27
  connection = Connection.new authentication, Mode::SERVER, @options, logger: logger
28
- connection.start
28
+ begin
29
+ connection.start
30
+ rescue Error::ClosedConnection
31
+ end
32
+ log_info { "server service finished" }
29
33
  end
30
34
  end
31
35
  end
@@ -174,11 +174,16 @@ module HrrRbSsh
174
174
  end
175
175
 
176
176
  @closed = false
177
+ rescue Error::ClosedTransport
178
+ close
179
+ raise Error::ClosedTransport
177
180
  rescue EOFError => e
178
181
  close
182
+ raise Error::ClosedTransport
179
183
  rescue => e
180
184
  log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
181
185
  close
186
+ raise Error::ClosedTransport
182
187
  else
183
188
  log_info { "transport started" }
184
189
  end
@@ -204,12 +209,15 @@ module HrrRbSsh
204
209
  @disconnected = true
205
210
  begin
206
211
  send_disconnect
212
+ rescue Error::ClosedTransport
213
+ log_warn { "Transport is closed" }
207
214
  rescue IOError
208
215
  log_warn { "IO is closed" }
209
216
  rescue => e
210
217
  log_error { [e.backtrace[0], ": ", e.message, " (", e.class.to_s, ")\n\t", e.backtrace[1..-1].join("\n\t")].join }
218
+ ensure
219
+ log_info { "transport disconnected" }
211
220
  end
212
- log_info { "transport disconnected" }
213
221
  end
214
222
 
215
223
  def exchange_version
@@ -2,5 +2,5 @@
2
2
  # vim: et ts=2 sw=2
3
3
 
4
4
  module HrrRbSsh
5
- VERSION = "0.4.0"
5
+ VERSION = "0.4.1"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hrr_rb_ssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - hirura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-12 00:00:00.000000000 Z
11
+ date: 2020-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake