sping 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/sping +3 -3
  3. data/lib/session_manager.rb +6 -3
  4. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b86ca7196e4e66f5e42f06a90744d59f8c75a748eb8d822c99f2b3b514dcf797
4
- data.tar.gz: 2832471afcc8106a53561c6c124a7c3b4c47721e0d5eadfbe8002ffc5bf6b667
3
+ metadata.gz: 4c84629573ffe3769a497d40dbe6e178daac6e3abfc537685459c80054c7a0db
4
+ data.tar.gz: 9a9cc52ebb3e2fe2a0e51effe9ce3e00709970d64c8c9e9d24b346976cf3d079
5
5
  SHA512:
6
- metadata.gz: 745b713e5605130433d669a58e542c93ebbd4ea4b044a2269c7844cc993d4868cab427fe0d12fa1b40ae152cd20586753dca8aaff2f18bded8a77399da554af3
7
- data.tar.gz: a155ed0d41f3b2e1ce6b580baed16c2c4f231c723d5407a6bdc8e18c3dc4e6e4bdecd28fea18e6ca3f49a40dd04dff228c6510b00983c3cec2f1928fe1af9e27
6
+ metadata.gz: d9da0a47ba8b5df79e935ba5a9768051f6b84cfddd1a3d50e4386f74d4dd2c806ff9386d8c27268ab87b84a2f8a21def16af3889aed951dd8f59201bb7f21447
7
+ data.tar.gz: b71abb2618ba86b862ff8125dd7d15c5c4d5a4f7de065b3d722d0cc2f8a62812ea7a8ffaa77c10737c1c61e9f29bd6b44cbc421f838b4b4f4d7ce225ed07b1e7
data/bin/sping CHANGED
@@ -25,12 +25,12 @@ ARGV.each do |host|
25
25
  end
26
26
 
27
27
  Signal.trap('INT') do
28
- puts "Stop sessions..."
29
- sess_mgr.stop_sessions
30
-
31
28
  puts "Stop server..."
32
29
  sess_mgr.stop_server
33
30
 
31
+ puts "Stop sessions..."
32
+ sess_mgr.stop_sessions
33
+
34
34
  puts "Stop client..."
35
35
  sess_mgr.stop
36
36
  end
@@ -31,7 +31,7 @@ module SPing
31
31
  loop do
32
32
  begin
33
33
  session.do_tcp_handshake2
34
- rescue Errno::ECONNRESET, TCPHandshakeError => e
34
+ rescue Errno::ECONNRESET, EOFError, IO::Timeout, TCPHandshakeError => e
35
35
  $logger.warn "TCP handshake failed: #{e.message}"
36
36
  return
37
37
  end
@@ -150,7 +150,10 @@ module SPing
150
150
 
151
151
  def do_gc
152
152
  $logger.debug 'Remove outdated sessions.'
153
- @sessions.each do |session_id, session|
153
+ @sessions.keys.each do |session_id|
154
+ session = @sessions[session_id]
155
+ # It is possible that sessions no longer exist here, as we may have session IDs that have already been deleted.
156
+ # However, we can ignore this aspect here, as we are the only function that deletes sessions.
154
157
  if ! (session.tcp_handshake_complete && session.udp_handshake_complete)
155
158
  # Handshake incomplete
156
159
  if (Time.now.to_i - session.created.to_i) > 60
@@ -245,7 +248,7 @@ module SPing
245
248
 
246
249
  begin
247
250
  session.do_tcp_handshake1 client, self.generate_session_id
248
- rescue Errno::ECONNRESET, TCPHandshakeError => e
251
+ rescue Errno::ECONNRESET, EOFError, IO::Timeout, TCPHandshakeError => e
249
252
  $logger.warn "Could not establish a new session with Peer: #{e.message}"
250
253
  return
251
254
  rescue OutOfSessions => e
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sping
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marek Küthe
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-06 00:00:00.000000000 Z
11
+ date: 2023-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -53,7 +53,7 @@ metadata:
53
53
  source_code_uri: https://codeberg.org/mark22k/sping
54
54
  bug_tracker_uri: https://codeberg.org/mark22k/sping/issues
55
55
  rubygems_mfa_required: 'true'
56
- post_install_message:
56
+ post_install_message:
57
57
  rdoc_options: []
58
58
  require_paths:
59
59
  - lib
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  version: '0'
70
70
  requirements: []
71
71
  rubygems_version: 3.4.21
72
- signing_key:
72
+ signing_key:
73
73
  specification_version: 4
74
74
  summary: Reimplementation of sping in Ruby.
75
75
  test_files: []