sping 1.0.0 → 1.0.2

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: e5ab53904c197ff35bab0d5fc29f26b5ada7c1ded24548b30d42df12d3df6837
4
+ data.tar.gz: 8bd57a7d33c5f39f1eb76ad2551550fafecc5836f373b3c3675648e620afebe1
5
5
  SHA512:
6
- metadata.gz: 745b713e5605130433d669a58e542c93ebbd4ea4b044a2269c7844cc993d4868cab427fe0d12fa1b40ae152cd20586753dca8aaff2f18bded8a77399da554af3
7
- data.tar.gz: a155ed0d41f3b2e1ce6b580baed16c2c4f231c723d5407a6bdc8e18c3dc4e6e4bdecd28fea18e6ca3f49a40dd04dff228c6510b00983c3cec2f1928fe1af9e27
6
+ metadata.gz: 90e021acc0d54dace745238c35566efacdd5be77d8db2f9ecd6e6aa1ed8d71ee89c552fb4674be23e1adcf244987154e1975364731eff78e76ad5dd7006ec3df
7
+ data.tar.gz: 336910fef1e87548f060a4a70547b272d78362828274dd5b21ed011a821a66ed71c7ece447045ca717a169676fa872594cbbd9e649e701731c63cd812c7f7bba
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::TimeoutError, 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::TimeoutError, 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.2
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: []