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