Do not add controls when it is empty. Fixed #17

Some LDAP servers, such as ApacheDS, consider as invalid protocol, if controls
is an empty array.
This commit is contained in:
Ian Yang 2011-08-10 20:18:27 +08:00
parent 7dd6c3a107
commit f102f50d9c

View file

@ -1389,9 +1389,9 @@ class Net::LDAP::Connection #:nodoc:
false.to_ber, false.to_ber,
rfc2696_cookie.map{ |v| v.to_ber}.to_ber_sequence.to_s.to_ber rfc2696_cookie.map{ |v| v.to_ber}.to_ber_sequence.to_s.to_ber
].to_ber_sequence if paged_searches_supported ].to_ber_sequence if paged_searches_supported
controls = controls.to_ber_contextspecific(0) controls = controls.empty? ? nil : controls.to_ber_contextspecific(0)
pkt = [next_msgid.to_ber, request, controls].to_ber_sequence pkt = [next_msgid.to_ber, request, controls].compact.to_ber_sequence
@conn.write pkt @conn.write pkt
result_code = 0 result_code = 0