@@ -85,10 +85,8 @@ def setup_encryption(args)
8585 # additional branches requiring server validation and peer certs, etc.
8686 # go here.
8787 when :start_tls
88- msgid = next_msgid . to_ber
8988 request = [ Net ::LDAP ::StartTlsOid . to_ber_contextspecific ( 0 ) ] . to_ber_appsequence ( Net ::LDAP ::PDU ::ExtendedRequest )
90- request_pkt = [ msgid , request ] . to_ber_sequence
91- write request_pkt
89+ write_request ( request )
9290 be = read
9391 raise Net ::LDAP ::LdapError , "no start_tls result" if be . nil?
9492 pdu = Net ::LDAP ::PDU . new ( be )
@@ -181,11 +179,9 @@ def bind_simple(auth)
181179
182180 raise Net ::LDAP ::LdapError , "Invalid binding information" unless ( user && psw )
183181
184- msgid = next_msgid . to_ber
185182 request = [ LdapVersion . to_ber , user . to_ber ,
186183 psw . to_ber_contextspecific ( 0 ) ] . to_ber_appsequence ( 0 )
187- request_pkt = [ msgid , request ] . to_ber_sequence
188- write request_pkt
184+ write_request ( request )
189185
190186 ( be = read and pdu = Net ::LDAP ::PDU . new ( be ) ) or raise Net ::LDAP ::LdapError , "no bind result"
191187
@@ -220,11 +216,9 @@ def bind_sasl(auth)
220216
221217 n = 0
222218 loop {
223- msgid = next_msgid . to_ber
224219 sasl = [ mech . to_ber , cred . to_ber ] . to_ber_contextspecific ( 3 )
225220 request = [ LdapVersion . to_ber , "" . to_ber , sasl ] . to_ber_appsequence ( 0 )
226- request_pkt = [ msgid , request ] . to_ber_sequence
227- write request_pkt
221+ write_request ( request )
228222
229223 ( be = read and pdu = Net ::LDAP ::PDU . new ( be ) ) or raise Net ::LDAP ::LdapError , "no bind result"
230224 return pdu unless pdu . result_code == 14 # saslBindInProgress
@@ -398,8 +392,7 @@ def search(args = {})
398392 controls << sort_control if sort_control
399393 controls = controls . empty? ? nil : controls . to_ber_contextspecific ( 0 )
400394
401- pkt = [ next_msgid . to_ber , request , controls ] . compact . to_ber_sequence
402- write pkt
395+ write_request ( request , controls )
403396
404397 result_pdu = nil
405398 controls = [ ]
@@ -507,8 +500,7 @@ def modify(args)
507500 ops = self . class . modify_ops args [ :operations ]
508501 request = [ modify_dn . to_ber ,
509502 ops . to_ber_sequence ] . to_ber_appsequence ( 6 )
510- pkt = [ next_msgid . to_ber , request ] . to_ber_sequence
511- write pkt
503+ write_request ( request )
512504
513505 ( be = read ) && ( pdu = Net ::LDAP ::PDU . new ( be ) ) && ( pdu . app_tag == Net ::LDAP ::PDU ::ModifyResponse ) or raise Net ::LDAP ::LdapError , "response missing or invalid"
514506
@@ -530,8 +522,7 @@ def add(args)
530522 }
531523
532524 request = [ add_dn . to_ber , add_attrs . to_ber_sequence ] . to_ber_appsequence ( 8 )
533- pkt = [ next_msgid . to_ber , request ] . to_ber_sequence
534- write pkt
525+ write_request ( request )
535526
536527 ( be = read ) &&
537528 ( pdu = Net ::LDAP ::PDU . new ( be ) ) &&
@@ -553,8 +544,7 @@ def rename(args)
553544 request = [ old_dn . to_ber , new_rdn . to_ber , delete_attrs . to_ber ]
554545 request << new_superior . to_ber_contextspecific ( 0 ) unless new_superior == nil
555546
556- pkt = [ next_msgid . to_ber , request . to_ber_appsequence ( 12 ) ] . to_ber_sequence
557- write pkt
547+ write_request ( request . to_ber_appsequence ( 12 ) )
558548
559549 ( be = read ) &&
560550 ( pdu = Net ::LDAP ::PDU . new ( be ) ) && ( pdu . app_tag == Net ::LDAP ::PDU ::ModifyRDNResponse ) or
@@ -570,8 +560,7 @@ def delete(args)
570560 dn = args [ :dn ] or raise "Unable to delete empty DN"
571561 controls = args . include? ( :control_codes ) ? args [ :control_codes ] . to_ber_control : nil #use nil so we can compact later
572562 request = dn . to_s . to_ber_application_string ( 10 )
573- pkt = [ next_msgid . to_ber , request , controls ] . compact . to_ber_sequence
574- write pkt
563+ write_request ( request , controls )
575564
576565 ( be = read ) && ( pdu = Net ::LDAP ::PDU . new ( be ) ) && ( pdu . app_tag == Net ::LDAP ::PDU ::DeleteResponse ) or raise Net ::LDAP ::LdapError , "response missing or invalid"
577566
0 commit comments