Skip to content

Commit 1e59169

Browse files
committed
Clear search's message queue, instrument unread messages
Shouldn't have unread messages but provide a way to measure it anyway.
1 parent 6cbb814 commit 1e59169

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

lib/net/ldap/connection.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,14 @@ def search(args = {})
518518

519519
result_pdu || OpenStruct.new(:status => :failure, :result_code => 1, :message => "Invalid search")
520520
end # instrument
521+
ensure
522+
# clean up message queue for this search
523+
messages = message_queue.delete(message_id)
524+
525+
unless messages.empty?
526+
instrument "search_messages_unread.net_ldap_connection",
527+
message_id: message_id, messages: messages
528+
end
521529
end
522530

523531
MODIFY_OPERATIONS = { #:nodoc:

test/test_ldap_connection.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ def test_search_net_ldap_connection_event
199199
and_return(search_result)
200200

201201
events = @service.subscribe "search.net_ldap_connection"
202+
unread = @service.subscribe "search_messages_unread.net_ldap_connection"
202203

203204
result = @connection.search(filter: "(uid=user1)")
204205
assert result.success?, "should be success"
@@ -209,5 +210,8 @@ def test_search_net_ldap_connection_event
209210
assert payload.has_key?(:filter)
210211
assert_equal "(uid=user1)", payload[:filter].to_s
211212
assert result
213+
214+
# ensure no unread
215+
assert unread.empty?, "should not have any leftover unread messages"
212216
end
213217
end

0 commit comments

Comments
 (0)