sping 1.0.0 → 1.0.2

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.
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: []