Only add the paging control if the server supports it. This is partly to work around a bug where a server will not allow all users to page, and will return insufficient access instead of ignoring the control.
This commit is contained in:
parent
74e994eed1
commit
756529b3ae
|
@ -1386,14 +1386,15 @@ class Net::LDAP::Connection #:nodoc:
|
||||||
search_attributes.to_ber_sequence
|
search_attributes.to_ber_sequence
|
||||||
].to_ber_appsequence(3)
|
].to_ber_appsequence(3)
|
||||||
|
|
||||||
controls = [
|
controls = []
|
||||||
|
controls <<
|
||||||
[
|
[
|
||||||
Net::LDAP::LdapControls::PagedResults.to_ber,
|
Net::LDAP::LdapControls::PagedResults.to_ber,
|
||||||
# Criticality MUST be false to interoperate with normal LDAPs.
|
# Criticality MUST be false to interoperate with normal LDAPs.
|
||||||
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
|
].to_ber_sequence if paged_searches_supported
|
||||||
].to_ber_contextspecific(0)
|
controls = controls.to_ber_contextspecific(0)
|
||||||
|
|
||||||
pkt = [next_msgid.to_ber, request, controls].to_ber_sequence
|
pkt = [next_msgid.to_ber, request, controls].to_ber_sequence
|
||||||
@conn.write pkt
|
@conn.write pkt
|
||||||
|
|
Loading…
Reference in a new issue