This repository was archived by the owner on Aug 4, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -317,6 +317,7 @@ class LdapError < StandardError; end
317317 2 => "Protocol Error" ,
318318 3 => "Time Limit Exceeded" ,
319319 4 => "Size Limit Exceeded" ,
320+ 10 => "Referral" ,
320321 12 => "Unavailable crtical extension" ,
321322 14 => "saslBindInProgress" ,
322323 16 => "No Such Attribute" ,
@@ -1418,6 +1419,13 @@ def search(args = {})
14181419 when 5 # search-result
14191420 result_code = pdu . result_code
14201421 controls = pdu . result_controls
1422+ if return_referrals && result_code == 10
1423+ if block_given?
1424+ se = Net ::LDAP ::Entry . new
1425+ se [ :search_referrals ] = ( pdu . search_referrals || [ ] )
1426+ yield se
1427+ end
1428+ end
14211429 break
14221430 else
14231431 raise Net ::LDAP ::LdapError , "invalid response-type in search: #{ pdu . app_tag } "
Original file line number Diff line number Diff line change @@ -136,6 +136,7 @@ def parse_ldap_result(sequence)
136136 :matchedDN => sequence [ 1 ] ,
137137 :errorMessage => sequence [ 2 ]
138138 }
139+ parse_search_referral ( sequence [ 3 ] ) if @ldap_result [ :resultCode ] == 10
139140 end
140141 private :parse_ldap_result
141142
You can’t perform that action at this time.
0 commit comments