Skip to content

Commit 2c82ad8

Browse files
sveljkovveljko
authored andcommitted
Fix message crackers (#30)
Wasn't handling JSON objects and "solo" numbers correctly.
1 parent 37251c9 commit 2c82ad8

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

PubNubDefs.h

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ class MessageCracker {
855855
switch (c) {
856856
case '{':
857857
case '[':
858-
d_bracket_level = 0;
858+
d_bracket_level = 1;
859859
d_state = in_message;
860860
msg.concat(c);
861861
break;
@@ -873,7 +873,8 @@ class MessageCracker {
873873
d_state = done;
874874
break;
875875
default:
876-
d_state = in_message;
876+
d_bracket_level = 0;
877+
d_state = in_message;
877878
msg.concat(c);
878879
break;
879880
}
@@ -912,10 +913,13 @@ class MessageCracker {
912913
break;
913914
case '}':
914915
case ']':
915-
if (--d_bracket_level == 0) {
916+
if (0 == d_bracket_level) {
917+
d_state = done;
918+
}
919+
else if (--d_bracket_level == 0) {
916920
d_state = ground_zero;
921+
msg.concat(c);
917922
}
918-
msg.concat(c);
919923
break;
920924
default:
921925
msg.concat(c);
@@ -1009,7 +1013,7 @@ class SubscribeCracker {
10091013
int get(String& msg)
10101014
{
10111015
msg.remove(0);
1012-
while (!finished() && !d_crack.msg_complete(msg)) {
1016+
while (!finished() && !message_complete(msg)) {
10131017
if (!d_psc->wait_for_data()) {
10141018
break;
10151019
}

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=Pubnub
2-
version=3.2.0
2+
version=3.2.1
33
author=Vladimir Veljkovic <[email protected]>
44
maintainer=Vladimir Veljkovic <[email protected]>
55
sentence=Pubnub SDK for Arduino.

0 commit comments

Comments
 (0)