Я пытаюсь использовать 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;
}
Пожалуйста, сообщите об ошибке. –