Virtual view list problem

Venish Khant <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.ldap
Message-ID <[email protected]>
Hi all

I am using cpan Net::LDAP module to access LDAP entries. I want to  
search LDAP entries using Net::LDAP  search method. When I do search,  
I want some limited  number of entries from search result, for this 
(searching) process I am using  Net::LDAP::Control::VLV module. But I  
get error on VLV response control. Please, any one have idea  about  
this error.
*
Error:* Died at vlv.pl line 50,

This is my example. I changed the font style of line 50

#!/usr/bin/perl -w

use Net::LDAP;
use Net::LDAP::Control::VLV;
use Net::LDAP::Constant qw( LDAP_CONTROL_VLVRESPONSE );
use Net::LDAP::Control::Sort;

sub procentry {
   my ( $mesg, $entry) = @_;
   # Return if there is no entry to process
   if ( !defined($entry) ) {
       return;
   }
   print "dn: " . $entry->dn() . "\n";
       @attrs = $entry->attributes();
       foreach $attr (@attrs) {
               #printf("\t%s: %s\n", $attr, $entry->get_value($attr));
               $attrvalue = $entry->get_value($attr,asref=>1);
               #print $attr.":". $entry->get_value($attr)."\n";
               foreach $value(@$attrvalue) {
                   print "$attr: $value\n";
               }
        }
   $mesg->pop_entry;
   print "\n";
}

$ldap = Net::LDAP->new( "localhost" );

# Get the first 20 entries
$vlv  = Net::LDAP::Control::VLV->new(
         before  => 0,        # No entries from before target entry
         after   => 19,       # 19 entries after target entry
         content => 0,        # List size unknown
         offset  => 1,        # Target entry is the first
       );
my $sort = Net::LDAP::Control::Sort->new( order => 'cn' );


@args = ( base     => "dc=example,dc=co,dc=in",
         scope    => "subtree",
         filter   => "(objectClass=inetOrgPerson)",
         callback => \&procentry, # Call this sub for each entry
         control  => [ $sort, $vlv ],
);

$mesg = $ldap->search( @args );

# Get VLV response control
*($resp)  = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die;*
$vlv->response( $resp );

# Set the control to get the last 20 entries
$vlv->end;

$mesg = $ldap->search( @args );

# Get VLV response control
($resp)  = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die;
$vlv->response( $resp );

# Now get the previous page
$vlv->scroll_page( -1 );

$mesg = $ldap->search( @args );

# Get VLV response control
($resp)  = $mes
# Now page with first entry starting with "B" in the middle
$vlv->before(9);       # Change page to show 9 before
$vlv->after(10);       # Change page to show 10 after
$vlv->assert("B");     # assert "B"

$mesg = $ldap->search( @args );g->control( LDAP_CONTROL_VLVRESPONSE )  
or die;
$vlv->response( $resp );

-- 
Venish Khant
www.deeproot.co.in
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.