File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -356,6 +356,10 @@ def search(args = {})
356356 result_pdu = nil
357357 n_results = 0
358358
359+ @queue ||= { }
360+ message_id = next_msgid
361+ @queue [ message_id ] ||= [ ]
362+
359363 instrument "search.net_ldap_connection" ,
360364 :filter => search_filter ,
361365 :base => search_base ,
@@ -403,12 +407,17 @@ def search(args = {})
403407 controls << sort_control if sort_control
404408 controls = controls . empty? ? nil : controls . to_ber_contextspecific ( 0 )
405409
406- write ( request , controls )
410+ write ( request , controls , message_id )
407411
408412 result_pdu = nil
409413 controls = [ ]
410414
411- while pdu = read
415+ while pdu = ( @queue [ message_id ] . shift || read )
416+ if pdu . message_id != message_id
417+ @queue [ pdu . message_id ] . push pdu
418+ next
419+ end
420+
412421 case pdu . app_tag
413422 when Net ::LDAP ::PDU ::SearchReturnedData
414423 n_results += 1
You can’t perform that action at this time.
0 commit comments