log-courier 2.9.1 → 2.10.0

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: bbafa32351f4513cd8863a25bfbeeca97497d2b148f2350baf598f595205dffe
4
- data.tar.gz: dddd5573b4d3908e0028652598ace3948bb0c516b2844c2d670940ad16f470cf
3
+ metadata.gz: 834c4c36961276190be8487bf5b1886a26929a7edc66d5e7bec33ebed66423bf
4
+ data.tar.gz: 4252b6972eb41c1f3dc1fc4a5e3d3d801bb14022bf624f5b0ff6a221a8b05fcc
5
5
  SHA512:
6
- metadata.gz: 8ffa4c359125610432621adb716a6e25ef5c510436ff5a4d3501423815c8a5dbcf7873e4351fe30465110de37f422118f08dbd85d462f60829f4cbdcd3b5d33e
7
- data.tar.gz: b10e56daebac839e8f320cd947ac04785154ec493e48efaa0228752412cb4e0728f75159a863fe4dbcc251dca9c8e2c7bf43e6755bb45b14436aad9b83bbcaa2
6
+ metadata.gz: ff6bb4da32cc74999598c04a2da316e3441bdf001977312bb51ee3396a0ed28fe1b4f675819eb488a594cdd27a7be6a810d2337424477874c8024c6aa7241986
7
+ data.tar.gz: a807517a2d0eab92b00a27372ce4c86b3d5362b4a8ac3682a213a5bcff08a5aa81f993309a264c5aae176cd1e079f4a8264a6f4564765420d2b20eda60ea2881
@@ -142,6 +142,7 @@ module LogCourier
142
142
  def clear
143
143
  @mutex.synchronize do
144
144
  @que.clear
145
+ @enque_cond.signal if @que.length < @max
145
146
  end
146
147
  self
147
148
  end
@@ -51,53 +51,46 @@ module LogCourier
51
51
 
52
52
  # Grab the port back and update the logger context
53
53
  @port = @server.port
54
- end
55
54
 
56
- def run(&block)
57
55
  # TODO: Make queue size configurable
58
56
  @event_queue = EventQueue.new 1
59
- server_thread = nil
60
-
61
- begin
62
- server_thread = Thread.new do
63
- # Receive messages and process them
64
- @server.run do |signature, message, comm|
65
- case signature
66
- when 'PING'
67
- process_ping message, comm
68
- when 'JDAT'
69
- process_jdat message, comm, @event_queue
57
+
58
+ @server_thread = Thread.new do
59
+ # Receive messages and process them
60
+ @server.run do |signature, message, comm|
61
+ case signature
62
+ when 'PING'
63
+ process_ping message, comm
64
+ when 'JDAT'
65
+ process_jdat message, comm, @event_queue
66
+ else
67
+ if comm.peer.nil?
68
+ @logger&.warn 'Unknown message received', from: 'unknown'
70
69
  else
71
- if comm.peer.nil?
72
- @logger&.warn 'Unknown message received', from: 'unknown'
73
- else
74
- @logger&.warn 'Unknown message received', from: comm.peer
75
- end
76
- # Don't kill a client that sends a bad message
77
- # Just reject it and let it send it again, potentially to another server
78
- comm.send '????', ''
70
+ @logger&.warn 'Unknown message received', from: comm.peer
79
71
  end
72
+ # Don't kill a client that sends a bad message
73
+ # Just reject it and let it send it again, potentially to another server
74
+ comm.send '????', ''
80
75
  end
81
76
  end
77
+ end
78
+ end
82
79
 
83
- loop do
84
- event = @event_queue.pop
85
- break if event.nil?
80
+ def run(&block)
81
+ loop do
82
+ event = @event_queue.pop
83
+ break if event.nil?
86
84
 
87
- block.call event
88
- end
89
- ensure
90
- # Signal the server thread to stop
91
- unless server_thread.nil?
92
- server_thread.raise ShutdownSignal
93
- server_thread.join
94
- end
85
+ block.call event
95
86
  end
96
87
  nil
97
88
  end
98
89
 
99
90
  def stop
91
+ @server_thread.raise ShutdownSignal
100
92
  @event_queue << nil
93
+ @server_thread.join
101
94
  nil
102
95
  end
103
96
 
@@ -283,10 +283,10 @@ module LogCourier
283
283
  # Connection abort request due to a protocol error
284
284
  @logger&.warn 'Protocol error, connection aborted', error: e.message, peer: @peer
285
285
  nil
286
- rescue ShutdownSignal
286
+ rescue ShutdownSignal => e
287
287
  # Shutting down
288
288
  @logger&.info 'Server shutting down, closing connection', peer: @peer
289
- nil
289
+ raise e
290
290
  rescue StandardError => e
291
291
  # Some other unknown problem
292
292
  @logger&.warn e.message, hint: 'Unknown error, connection aborted', peer: @peer
@@ -1,7 +1,7 @@
1
1
  # Version of LogCourier
2
2
  module LogCourier
3
3
  MAJOR_VERSION = 2
4
- MINOR_VERSION = 9
5
- PATCH_VERSION = 1
6
- VERSION = '2.9.1'.freeze
4
+ MINOR_VERSION = 10
5
+ PATCH_VERSION = 0
6
+ VERSION = '2.10.0'.freeze
7
7
  end
metadata CHANGED
@@ -1,22 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: log-courier
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.1
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Woods
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-15 00:00:00.000000000 Z
11
+ date: 2023-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: cabin
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
18
  version: '0.6'
19
+ name: cabin
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,12 +25,12 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: multi_json
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
32
  version: '1.10'
33
+ name: multi_json
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
- rubygems_version: 3.3.7
75
+ rubygems_version: 3.2.29
76
76
  signing_key:
77
77
  specification_version: 4
78
78
  summary: Ruby implementation of the Courier protocol