diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index c0b597a51..e4f7b3b33 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -372,10 +372,14 @@ FW_Read($) $arg = "" if(!defined($arg)); Log3 $FW_wname, 4, "HTTP $name GET $arg"; + $FW_ME = "/" . AttrVal($FW_wname, "webname", "fhem"); my $pid; if(AttrVal($FW_wname, "plotfork", undef)) { # Process SVG rendering as a parallel process - return if(($arg =~ m+/SVG_showLog+) && ($pid = fork)); + my $p = $data{FWEXT}; + if(grep { $p->{$_}{FORKABLE} && $arg =~ m+^$FW_ME$_+ } keys %{$p}) { + return if($pid = fork); + } } my $cacheable = FW_answerCall($arg); @@ -437,7 +441,6 @@ FW_answerCall($) $FW_RET = ""; $FW_RETTYPE = "text/html; charset=$FW_encoding"; - $FW_ME = "/" . AttrVal($FW_wname, "webname", "fhem"); $FW_CSRF = ($defs{$FW_wname}{CSRFTOKEN} ? "&fwcsrf=".$defs{$FW_wname}{CSRFTOKEN} : ""); diff --git a/fhem/FHEM/98_SVG.pm b/fhem/FHEM/98_SVG.pm index bfcc7abfd..0ef198bf2 100755 --- a/fhem/FHEM/98_SVG.pm +++ b/fhem/FHEM/98_SVG.pm @@ -55,6 +55,7 @@ SVG_Initialize($) $hash->{FW_atPageEnd} = 1; $data{FWEXT}{"/SVG_WriteGplot"}{CONTENTFUNC} = "SVG_WriteGplot"; $data{FWEXT}{"/SVG_showLog"}{FUNC} = "SVG_showLog"; + $data{FWEXT}{"/SVG_showLog"}{FORKABLE} = 1; } ##################################### diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 5a2884585..9c13baae1 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -2344,8 +2344,8 @@ CommandSetstate($$) } else { - # The timestamp is not the correct one, but we do not store a timestamp for - # this reading. + # The timestamp is not the correct one, but we do not store a timestamp + # for this reading. my $tn = TimeNow(); $oldvalue{$sdev}{TIME} = $tn; $oldvalue{$sdev}{VAL} = ($init_done ? $d->{STATE} : $a[1]);