@@ -85,10 +85,8 @@ def setup_encryption(args)
85
85
# additional branches requiring server validation and peer certs, etc.
86
86
# go here.
87
87
when :start_tls
88
- msgid = next_msgid . to_ber
89
88
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 )
92
90
be = read
93
91
raise Net ::LDAP ::LdapError , "no start_tls result" if be . nil?
94
92
pdu = Net ::LDAP ::PDU . new ( be )
@@ -181,11 +179,9 @@ def bind_simple(auth)
181
179
182
180
raise Net ::LDAP ::LdapError , "Invalid binding information" unless ( user && psw )
183
181
184
- msgid = next_msgid . to_ber
185
182
request = [ LdapVersion . to_ber , user . to_ber ,
186
183
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 )
189
185
190
186
( be = read and pdu = Net ::LDAP ::PDU . new ( be ) ) or raise Net ::LDAP ::LdapError , "no bind result"
191
187
@@ -220,11 +216,9 @@ def bind_sasl(auth)
220
216
221
217
n = 0
222
218
loop {
223
- msgid = next_msgid . to_ber
224
219
sasl = [ mech . to_ber , cred . to_ber ] . to_ber_contextspecific ( 3 )
225
220
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 )
228
222
229
223
( be = read and pdu = Net ::LDAP ::PDU . new ( be ) ) or raise Net ::LDAP ::LdapError , "no bind result"
230
224
return pdu unless pdu . result_code == 14 # saslBindInProgress
@@ -398,8 +392,7 @@ def search(args = {})
398
392
controls << sort_control if sort_control
399
393
controls = controls . empty? ? nil : controls . to_ber_contextspecific ( 0 )
400
394
401
- pkt = [ next_msgid . to_ber , request , controls ] . compact . to_ber_sequence
402
- write pkt
395
+ write_request ( request , controls )
403
396
404
397
result_pdu = nil
405
398
controls = [ ]
@@ -507,8 +500,7 @@ def modify(args)
507
500
ops = self . class . modify_ops args [ :operations ]
508
501
request = [ modify_dn . to_ber ,
509
502
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 )
512
504
513
505
( be = read ) && ( pdu = Net ::LDAP ::PDU . new ( be ) ) && ( pdu . app_tag == Net ::LDAP ::PDU ::ModifyResponse ) or raise Net ::LDAP ::LdapError , "response missing or invalid"
514
506
@@ -530,8 +522,7 @@ def add(args)
530
522
}
531
523
532
524
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 )
535
526
536
527
( be = read ) &&
537
528
( pdu = Net ::LDAP ::PDU . new ( be ) ) &&
@@ -553,8 +544,7 @@ def rename(args)
553
544
request = [ old_dn . to_ber , new_rdn . to_ber , delete_attrs . to_ber ]
554
545
request << new_superior . to_ber_contextspecific ( 0 ) unless new_superior == nil
555
546
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 ) )
558
548
559
549
( be = read ) &&
560
550
( pdu = Net ::LDAP ::PDU . new ( be ) ) && ( pdu . app_tag == Net ::LDAP ::PDU ::ModifyRDNResponse ) or
@@ -570,8 +560,7 @@ def delete(args)
570
560
dn = args [ :dn ] or raise "Unable to delete empty DN"
571
561
controls = args . include? ( :control_codes ) ? args [ :control_codes ] . to_ber_control : nil #use nil so we can compact later
572
562
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 )
575
564
576
565
( be = read ) && ( pdu = Net ::LDAP ::PDU . new ( be ) ) && ( pdu . app_tag == Net ::LDAP ::PDU ::DeleteResponse ) or raise Net ::LDAP ::LdapError , "response missing or invalid"
577
566
0 commit comments