hrr_rb_ssh 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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