From 66717398fc3f1164308222825716fba28889efde Mon Sep 17 00:00:00 2001 From: jpawlowski Date: Sun, 17 Jan 2016 01:11:52 +0000 Subject: [PATCH] 75_MSG: eval for wrong JSON format git-svn-id: https://svn.fhem.de/fhem/trunk@10546 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/75_MSG.pm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/fhem/FHEM/75_MSG.pm b/fhem/FHEM/75_MSG.pm index 03eb1f313..f869eb0f2 100755 --- a/fhem/FHEM/75_MSG.pm +++ b/fhem/FHEM/75_MSG.pm @@ -157,12 +157,21 @@ s/^[\s\t]*([!]?(([A-Za-z0-9%+._-])*@([%+a-z0-9A-Z.-]+))[\w,@.!|:]*)[\s\t]+// # check for advanced options if ( $msg =~ s/[\s\t]*O(\[\{.*\}\])[\s\t]*$// ) { + Log3 $globalDevName, 5, "msg: found options=$1"; + # Use JSON module if possible eval 'use JSON qw( decode_json ); 1'; if ( !$@ ) { - $advanced = decode_json( Encode::encode_utf8($1) ); - Log3 $globalDevName, 5, - "msg: Advanced options\n" . Dumper($advanced); + eval '$advanced = decode_json( Encode::encode_utf8($1) ); 1'; + if (!$@) { + Log3 $globalDevName, 5, + "msg: Decoded advanced options\n" . Dumper($advanced); + } + else { + Log3 $globalDevName, 5, + "msg: Error decoding JSON for advanced options"; + $advanced = ""; + } } else { Log3 $globalDevName, 3,