mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-13 17:26:34 +00:00
fhem.pl: allow $EVENT in multiple perl-commands in a chain. (Forum #44297)
git-svn-id: https://svn.fhem.de/fhem/trunk@9934 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
714a983be4
commit
09ae4641a2
10
fhem/fhem.pl
10
fhem/fhem.pl
@ -44,7 +44,7 @@ sub AddDuplicate($$);
|
|||||||
sub AnalyzeCommand($$;$);
|
sub AnalyzeCommand($$;$);
|
||||||
sub AnalyzeCommandChain($$;$);
|
sub AnalyzeCommandChain($$;$);
|
||||||
sub AnalyzeInput($);
|
sub AnalyzeInput($);
|
||||||
sub AnalyzePerlCommand($$);
|
sub AnalyzePerlCommand($$;$);
|
||||||
sub AssignIoPort($;$);
|
sub AssignIoPort($;$);
|
||||||
sub AttrVal($$$);
|
sub AttrVal($$$);
|
||||||
sub CallFn(@);
|
sub CallFn(@);
|
||||||
@ -932,9 +932,9 @@ AnalyzeCommandChain($$;$)
|
|||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
sub
|
sub
|
||||||
AnalyzePerlCommand($$)
|
AnalyzePerlCommand($$;$)
|
||||||
{
|
{
|
||||||
my ($cl, $cmd) = @_;
|
my ($cl, $cmd, $calledFromChain) = @_;
|
||||||
|
|
||||||
$cmd =~ s/\\ *\n/ /g; # Multi-line. Probably not needed anymore
|
$cmd =~ s/\\ *\n/ /g; # Multi-line. Probably not needed anymore
|
||||||
|
|
||||||
@ -967,7 +967,7 @@ AnalyzePerlCommand($$)
|
|||||||
. $cmd;
|
. $cmd;
|
||||||
# Normally this is deleted in AnalyzeCommandChain, but ECMDDevice calls us
|
# Normally this is deleted in AnalyzeCommandChain, but ECMDDevice calls us
|
||||||
# directly, and combining perl with something else isnt allowed anyway.
|
# directly, and combining perl with something else isnt allowed anyway.
|
||||||
$evalSpecials = undef;
|
$evalSpecials = undef if(!$calledFromChain);
|
||||||
}
|
}
|
||||||
|
|
||||||
$cmdFromAnalyze = $cmd;
|
$cmdFromAnalyze = $cmd;
|
||||||
@ -991,7 +991,7 @@ AnalyzeCommand($$;$)
|
|||||||
|
|
||||||
if($cmd =~ m/^{.*}$/s) { # Perl code
|
if($cmd =~ m/^{.*}$/s) { # Perl code
|
||||||
return "Forbidden command $cmd." if($allowed && $allowed !~ m/\bperl\b/);
|
return "Forbidden command $cmd." if($allowed && $allowed !~ m/\bperl\b/);
|
||||||
return AnalyzePerlCommand($cl, $cmd);
|
return AnalyzePerlCommand($cl, $cmd, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($cmd =~ m/^"(.*)"$/s) { # Shell code in bg, to be able to call us from it
|
if($cmd =~ m/^"(.*)"$/s) { # Shell code in bg, to be able to call us from it
|
||||||
|
Loading…
x
Reference in New Issue
Block a user