Skip to content

Commit 2fb8067

Browse files
committed
Move Net::LDAP::PDU parsing to Net::LDAP::Connection#read
Adds instrumenting of the parsed PDU.
1 parent 5a63639 commit 2fb8067

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

lib/net/ldap/connection.rb

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,25 @@ def close
119119
#
120120
# - syntax: the BER syntax to use to parse the read data with
121121
#
122-
# Returns basic BER objects.
122+
# Returns parsed Net::LDAP::PDU object.
123123
def read(syntax = Net::LDAP::AsnSyntax)
124-
instrument "read.net_ldap_connection", :syntax => syntax do |payload|
125-
@conn.read_ber(syntax) do |id, content_length|
126-
payload[:object_type_id] = id
127-
payload[:content_length] = content_length
124+
ber_object =
125+
instrument "read.net_ldap_connection", :syntax => syntax do |payload|
126+
@conn.read_ber(syntax) do |id, content_length|
127+
payload[:object_type_id] = id
128+
payload[:content_length] = content_length
129+
end
128130
end
131+
132+
return unless ber_object
133+
134+
instrument "parse_pdu.net_ldap_connection" do |payload|
135+
pdu = payload[:pdu] = Net::LDAP::PDU.new(ber_object)
136+
137+
payload[:message_id] = pdu.message_id
138+
payload[:app_tag] = pdu.app_tag
139+
140+
pdu
129141
end
130142
end
131143
private :read

0 commit comments

Comments
 (0)