2015-08-26 2 views
0

Я пытаюсь использовать Net :: LDAP с Net :: LDAP :: CONTROL :: PAGED для возврата многих записей через приватное связывание, но до сих пор я потерпел неудачу, несчастно. Я использовал этот Net :: LDAP широко в прошлом, но я никогда не мог найти документацию, предполагающую, что он совместим с Net :: LDAP: Control :: Paged. Все, что я нахожу, связано с Net :: LDAP.с использованием Net :: LDAP с Net :: LDAP :: Control :: Paged

Сообщение об ошибке я получаю: Undefined подпрограмма & главной :: process_entry называется на /usr/local/share/perl/5.20.2/Net/LDAP/Search.pm линии 55, линии 755

Здесь мой код:

sub Ldap636{ 
    my ($filter) = $_[0]; 
    my $USERNAME = 'username'; 
    my $PASSWORD = 'password'; 
    my $LDAP_SERVER = 'directory.domain.edu'; 
    my $LDAP_SSL_PORT = '636'; 
    my $LDAP_BASE = 'ou=people,dc=domain,dc=edu'; 
    my $userDN = "uid=$USERNAME,ou=identities,ou=special,dc=domain,dc=edu"; 

    my $ldap = Net::LDAPS->new($LDAP_SERVER, port => $LDAP_SSL_PORT) or die "Could not create LDAP object because:\n$!"; 

    my $ldapMsg = $ldap->bind($userDN, password => $PASSWORD); 
    die $ldapMsg->error if $ldapMsg->is_error; 

    my $page = Net::LDAP::Control::Paged->new(size => 100);  

    @args = (base => "$LDAP_BASE", 
      callback => \&process_entry, 
      filter => $filter, 
      control => [ $page ], 
    ); 

    my $cookie; 
    while (1) { 
      my $result = $ldap->search(@args); 
      "LDAP error: server says ",$result->error,"\n" if $result->code; 

      foreach my $entry ($result->entries) { 
        my $cn = $entry->get_value('cn'); 
        my $desc = $entry->get_value('description'); 
        print "$cn - $desc\n"; 
      } 

      # Get cookie from paged control 
      my($resp) = $result->control(LDAP_CONTROL_PAGED) or last; 
      $cookie = $resp->cookie or last; 


      $page->cookie($cookie); 
    } 

    $ldap->unbind; 
} 
+0

Пожалуйста, сообщите об ошибке. –

ответ

0

сообщение об ошибке я получаю: Undefined подпрограмма & главной :: process_entry называется в /usr/local/share/perl/5.20.2/Net/LDAP/Search.pm строка 55, линия 755

Вы написали process_entry в качестве обратного вызова, но вы не указали эту подпрограмму. Вот почему вы получаете вышеуказанную ошибку.

 Смежные вопросы

  • Нет связанных вопросов^_^