2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-17 17:36:01 +00:00

FHEMWEB.pm: better JSON Escaping

git-svn-id: https://svn.fhem.de/fhem/trunk@7562 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-01-14 07:16:35 +00:00
parent c5ac9bad54
commit 02c2e4f9ae

View File

@ -2207,14 +2207,23 @@ FW_makeEdit($$$)
}
my %jsTab = (
'\\' => '\\\\',
'"' => '\\"',
'\t' => '\\t',
'\r' => '\\r',
'\n' => '\\n',
'\b' => '\\b',
'\v' => '\\v'
);
sub
FW_longpollInfo($$$$)
{
my ($dev, $state, $html, $fmt) = @_;
if($fmt && $fmt eq "JSON") {
$dev =~ s/([\\"])/\\$1/g;
$state =~ s/([\\"])/\\$1/g;
$html =~ s/([\\"])/\\$1/g;
$dev =~ s/([\\"\t\r\n\b\v])/$jsTab{$1}/ge;
$state =~ s/([\\"\t\r\n\b\v])/$jsTab{$1}/ge;
$html =~ s/([\\"\t\r\n\b\v])/$jsTab{$1}/ge;
return "[\"$dev\",\"$state\",\"$html\"]";
} else {
return "$dev<<$state<<$html";