version 1.903, 2007/08/02 20:40:13
|
version 1.904, 2007/08/08 22:24:34
|
Line 862 sub inst_directory_query {
|
Line 862 sub inst_directory_query {
|
my %results; |
my %results; |
my $homeserver = &domain($udom,'primary'); |
my $homeserver = &domain($udom,'primary'); |
if ($homeserver ne '') { |
if ($homeserver ne '') { |
my $response=&reply("instdirsrch:$udom".':'. |
my $queryid=&reply("querysend:instdirsearch:". |
&escape($srch->{'srchby'}).':'. |
&escape($srch->{'srchby'}).':'. |
&escape($srch->{'srchterm'}).':'. |
&escape($srch->{'srchterm'}).':'. |
$srch->{'srchtype'},$homeserver); |
&escape($srch->{'srchtype'}),$homeserver); |
if ($response ne 'refused') { |
my $host=&hostname($homeserver); |
my @matches = split(/&/,$response); |
if ($queryid !~/^\Q$host\E\_/) { |
|
&logthis('instituional directory search invalid queryid: '.$queryid.' for host: '.$homeserver.'in domain '.$udom); |
|
return; |
|
} |
|
my $response = &get_query_reply($queryid); |
|
my $maxtries = 5; |
|
my $tries = 1; |
|
while (($response=~/^timeout/) && ($tries < $maxtries)) { |
|
$response = &get_query_reply($queryid); |
|
$tries ++; |
|
} |
|
|
|
if (!&error($response) && $response ne 'refused') { |
|
my @matches = split(/\n/,$response); |
foreach my $match (@matches) { |
foreach my $match (@matches) { |
my ($key,$value) = split(/=/,$match); |
my ($key,$value) = split(/=/,$match); |
my %userhash = &str2hash(&unescape($value)); |
$results{&unescape($key).':'.$udom} = &thaw_unescape($value); |
$results{&unescape($key).':'.$udom} = \%userhash; |
|
} |
} |
} |
} |
} |
} |
Line 4541 sub get_query_reply {
|
Line 4553 sub get_query_reply {
|
sleep 2; |
sleep 2; |
if (-e $replyfile.'.end') { |
if (-e $replyfile.'.end') { |
if (open(my $fh,$replyfile)) { |
if (open(my $fh,$replyfile)) { |
$reply.=<$fh>; |
$reply = join('',<$fh>); |
close($fh); |
close($fh); |
} else { return 'error: reply_file_error'; } |
} else { return 'error: reply_file_error'; } |
return &unescape($reply); |
return &unescape($reply); |
} |
} |