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 = {})
356
356
result_pdu = nil
357
357
n_results = 0
358
358
359
+ @queue ||= { }
360
+ message_id = next_msgid
361
+ @queue [ message_id ] ||= [ ]
362
+
359
363
instrument "search.net_ldap_connection" ,
360
364
:filter => search_filter ,
361
365
:base => search_base ,
@@ -403,12 +407,17 @@ def search(args = {})
403
407
controls << sort_control if sort_control
404
408
controls = controls . empty? ? nil : controls . to_ber_contextspecific ( 0 )
405
409
406
- write ( request , controls )
410
+ write ( request , controls , message_id )
407
411
408
412
result_pdu = nil
409
413
controls = [ ]
410
414
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
+
412
421
case pdu . app_tag
413
422
when Net ::LDAP ::PDU ::SearchReturnedData
414
423
n_results += 1
You can’t perform that action at this time.
0 commit comments