version 1.34, 2003/03/28 23:32:46
|
version 1.37, 2003/06/09 21:37:54
|
Line 38 ENDEVALUATE
|
Line 38 ENDEVALUATE
|
|
|
sub evaluate { |
sub evaluate { |
my ($expression,$safeeval,$decls) = @_; |
my ($expression,$safeeval,$decls) = @_; |
|
&Apache::lonxml::debug("got $expression and decls $decls"); |
unless (defined($expression)) { return ''; } |
unless (defined($expression)) { return ''; } |
if ($Apache::lonxml::evaluate < 1) { return $expression; } |
if ($Apache::lonxml::evaluate < 1) { return $expression; } |
my $result = ''; |
my $result = ''; |
Line 49 sub evaluate {
|
Line 50 sub evaluate {
|
}; |
}; |
my $innererror; |
my $innererror; |
eval { |
eval { |
alarm(Apache->request->server->timeout); |
alarm($Apache::lonnet::perlvar{'lonScriptTimeout'}); |
$safeeval->reval('{'.$decls.';$_=<<\'EXPRESSION\';'."\n".$expression. |
$safeeval->reval('{'.$decls.';$_=<<\'EXPRESSION\';'."\n".$expression. |
"\n".'EXPRESSION'."\n".$EVALUATE_STRING.'}'); |
"\n".'EXPRESSION'."\n".$EVALUATE_STRING.'}'); |
$innererror=$@; |
$innererror=$@; |
Line 87 sub run {
|
Line 88 sub run {
|
}; |
}; |
my $innererror; |
my $innererror; |
eval { |
eval { |
alarm(Apache->request->server->timeout); |
alarm($Apache::lonnet::perlvar{'lonScriptTimeout'}); |
@result=$safeeval->reval($code); |
@result=$safeeval->reval($code); |
$innererror=$@; |
$innererror=$@; |
alarm(0); |
alarm(0); |
}; |
}; |
my $error=$@; |
my $error=$@; |
&Apache::lonxml::debug("run got $@"); |
|
if (($Apache::run::timeout || $error ne '' || $innererror ne '') && !$hideerrors) { |
if (($Apache::run::timeout || $error ne '' || $innererror ne '') && !$hideerrors) { |
if ($Apache::run::timeout) { |
if ($Apache::run::timeout) { |
$error = 'Code ran too long. It ran for more than '. |
$error = 'Code ran too long. It ran for more than '. |