Доброго времени суток.... есть проблема написал свой редиректор на Perl дал нужные права на выполнение... но есть странность скрипт выполняется указанное количество раз в настройках сквида, выполняет все как положенно и зависает.. не возвращаясь в начало...пример скрипта
ladp_connect.pl :
[::code::]
#!/usr/bin/perl
system("echo run_script >> /home/http/redir.log");
use strict;
use Net::LDAP;
$0='redirect';
$|=1;
while(<>)
{
my @al_data = split;
my $url=$al_data[0];
my $ipaddr = $al_data[1];
my $clr_ipaddr = substr($ipaddr,0,length($ipaddr)-2);
my $cmd = "nslookup ".$clr_ipaddr." 10.32.12.1";
my @result_cmd = `$cmd`;
my $out_res = $result_cmd[3];
my $ind_1 = index($out_res,"name =",0)+7;
my $str_1 = substr($out_res,$ind_1,255);
my $ind_2 = index($str_1,".hostappr",0);
my $sub_2 = substr($str_1,0,$ind_2);
my $cn_host = $sub_2;
system("echo ipaddr : $clr_ipaddr url : $url address $sub_2 >> /home/http/redir.log");
if(length($cn_host) > 0)
{
my $ldap_server="10.32.12.1";
my $base='ou=WS_restricted,ou=mufldr,dc=myfrm,dc=mydomname,dc=com';
my $pwd="password";
my $ldap = Net::LDAP->new($ldap_server) or die "$@";
my $mesg = $ldap->bind("cn=Mimik,OU=Users,OU=myfldr,DC=myfrm,DC=mydomname,DC=com",password =>$pwd) ;
die "Error: ",$mesg->error if ($mesg->is_error);
$mesg = $ldap->search ( filter=>"(cn=$cn_host)",base => $base );
$mesg->code && die $mesg->error;
($mesg->count != 1) && die "More than one user with uid ?!?!?";
my $max = $mesg->count;
my $entry = ();
for( my $index = 0; $index < $max; $index++)
{
$entry = $mesg->entry($index);
}
my $entr = $entry->get_value('description');
if($entr != "")
{
system("echo $entr $cn_host $url >> /home/http/redir.log");
print;
}
else
{
system("echo not logged to ldap ".$entr." $url >> /home/http/redir.log");
}
$ldap->unbind;
}
}
[::code::]
в настройках сквида редиректор запускается 10 раз
скажите что я делаю не так о_О