---
gatchat/gatsyntax.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/gatchat/gatsyntax.c b/gatchat/gatsyntax.c
index 040a9a5..8fa8db4 100644
--- a/gatchat/gatsyntax.c
+++ b/gatchat/gatsyntax.c
@@ -276,8 +276,20 @@ static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax,
break;
case GSM_PERMISSIVE_STATE_GUESS_PDU:
- if (byte != '\r' && byte != '\n')
+
+ /**
+ * Modify for SMS text mode, check except message length
+ * If >= 0, skip expect_msg_len bytes
+ * If == -1, keep original design
+ * TODO current GSMV1 syntax can't support
+ */
+ if (syntax->expect_msg_len == -1) {
+ if (byte != '\r' && byte != '\n')
+ syntax->state = GSM_PERMISSIVE_STATE_PDU;
+ } else {
+ i += syntax->expect_msg_len;
syntax->state = GSM_PERMISSIVE_STATE_PDU;
+ }
break;
case GSM_PERMISSIVE_STATE_PDU:
--
1.6.3.3
Show replies by thread