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
317
317
2 => "Protocol Error" ,
318
318
3 => "Time Limit Exceeded" ,
319
319
4 => "Size Limit Exceeded" ,
320
+ 10 => "Referral" ,
320
321
12 => "Unavailable crtical extension" ,
321
322
14 => "saslBindInProgress" ,
322
323
16 => "No Such Attribute" ,
@@ -1418,6 +1419,13 @@ def search(args = {})
1418
1419
when 5 # search-result
1419
1420
result_code = pdu . result_code
1420
1421
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
1421
1429
break
1422
1430
else
1423
1431
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)
136
136
:matchedDN => sequence [ 1 ] ,
137
137
:errorMessage => sequence [ 2 ]
138
138
}
139
+ parse_search_referral ( sequence [ 3 ] ) if @ldap_result [ :resultCode ] == 10
139
140
end
140
141
private :parse_ldap_result
141
142
You can’t perform that action at this time.
0 commit comments