On Sep 22, 2009, at 11:29 AM, Dieter Kluenter wrote:

Graham Barr <gb...@pobox.com> writes:

On Sep 22, 2009, at 4:35 AM, Dieter Kluenter wrote:

Hi,
my ldap server is OpenLDAP-2.4.18 with sssvlv overlay configured.
Running my perl script, which is in principle based on
Net::LDAP::Control::VLV, I get following errors:

slapd:
get_ctrls: oid="2.16.840.1.113730.3.4.9" (critical)
<= get_ctrls: n=2 rc=2 err="vlv control value is absent"
send_ldap_result: conn=0 op=2 p=3

can you call $ldap->debug(5); before your call to search and post the
output

OK, here it is:

0087   28:     SEQUENCE {
0089   23:       STRING = '2.16.840.1.113730.3.4.9'
00A2    1:       BOOLEAN = TRUE
00A5     :     }

that is weird.

that should be

0000   46: SEQUENCE {
0002   23:   STRING = '2.16.840.1.113730.3.4.9'
001B    1:   BOOLEAN = TRUE
001E   16:   STRING
0020 : 30 0E 02 01 00 02 01 13 A0 06 02 01 01 02 01 00 0...............
0030     : }

which is what I got when I ran this test script



use Net::LDAP::Control::VLV;
use Net::LDAP::ASN qw(Control);
use Convert::ASN1 qw(:debug);
use Data::Dumper;

$vlv = Net::LDAP::Control::VLV->new(
  before   => 0,
  after    => 19,
  content  => 0,
  offset   => 1,
  critical => 'TRUE'
);

print Dumper($vlv);
$vlv->to_asn;
print Dumper($vlv); # should add 'value' element to object hash

$d = $Control->encode($vlv);

asn_dump($d);


Do you have the most up to date perl-ldap installed ?

Graham.

Reply via email to