Skip to content

Commit 94e77aa

Browse files
committed
Refactor/cleanup read error handling
1 parent e0912ea commit 94e77aa

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

lib/net/ldap/connection.rb

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ def bind_simple(auth)
192192
request_pkt = [msgid, request].to_ber_sequence
193193
write request_pkt
194194

195-
(pdu = read) or raise Net::LDAP::LdapError, "no bind result"
195+
pdu = read
196+
raise Net::LDAP::LdapError, "no bind result" unless pdu
196197

197198
pdu
198199
end
@@ -231,7 +232,9 @@ def bind_sasl(auth)
231232
request_pkt = [msgid, request].to_ber_sequence
232233
write request_pkt
233234

234-
(pdu = read) or raise Net::LDAP::LdapError, "no bind result"
235+
pdu = read
236+
raise Net::LDAP::LdapError, "no bind result" unless pdu
237+
235238
return pdu unless pdu.result_code == 14 # saslBindInProgress
236239
raise Net::LDAP::LdapError, "sasl-challenge overflow" if ((n += 1) > MaxSaslChallenges)
237240

@@ -409,7 +412,7 @@ def search(args = {})
409412
result_pdu = nil
410413
controls = []
411414

412-
while (pdu = read)
415+
while pdu = read
413416
case pdu.app_tag
414417
when Net::LDAP::PDU::SearchReturnedData
415418
n_results += 1
@@ -515,7 +518,11 @@ def modify(args)
515518
pkt = [ next_msgid.to_ber, request ].to_ber_sequence
516519
write pkt
517520

518-
(pdu = read) && (pdu.app_tag == Net::LDAP::PDU::ModifyResponse) or raise Net::LDAP::LdapError, "response missing or invalid"
521+
pdu = read
522+
523+
if !pdu || pdu.app_tag != Net::LDAP::PDU::ModifyResponse
524+
raise Net::LDAP::LdapError, "response missing or invalid"
525+
end
519526

520527
pdu
521528
end
@@ -538,9 +545,11 @@ def add(args)
538545
pkt = [next_msgid.to_ber, request].to_ber_sequence
539546
write pkt
540547

541-
(pdu = read) &&
542-
(pdu.app_tag == Net::LDAP::PDU::AddResponse) or
548+
pdu = read
549+
550+
if !pdu || pdu.app_tag != Net::LDAP::PDU::AddResponse
543551
raise Net::LDAP::LdapError, "response missing or invalid"
552+
end
544553

545554
pdu
546555
end
@@ -560,9 +569,11 @@ def rename(args)
560569
pkt = [next_msgid.to_ber, request.to_ber_appsequence(12)].to_ber_sequence
561570
write pkt
562571

563-
(pdu = read) &&
564-
(pdu.app_tag == Net::LDAP::PDU::ModifyRDNResponse) or
565-
raise Net::LDAP::LdapError.new( "response missing or invalid" )
572+
pdu = read
573+
574+
if !pdu || pdu.app_tag != Net::LDAP::PDU::ModifyRDNResponse
575+
raise Net::LDAP::LdapError.new "response missing or invalid"
576+
end
566577

567578
pdu
568579
end
@@ -577,7 +588,11 @@ def delete(args)
577588
pkt = [next_msgid.to_ber, request, controls].compact.to_ber_sequence
578589
write pkt
579590

580-
(pdu = read) && (pdu.app_tag == Net::LDAP::PDU::DeleteResponse) or raise Net::LDAP::LdapError, "response missing or invalid"
591+
pdu = read
592+
593+
if !pdu || pdu.app_tag != Net::LDAP::PDU::DeleteResponse
594+
raise Net::LDAP::LdapError, "response missing or invalid"
595+
end
581596

582597
pdu
583598
end

0 commit comments

Comments
 (0)