summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gatchat/gatsyntax.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gatchat/gatsyntax.c b/gatchat/gatsyntax.c
index 6201e4cf..6266e795 100644
--- a/gatchat/gatsyntax.c
+++ b/gatchat/gatsyntax.c
@@ -42,6 +42,7 @@ enum GSMV1_STATE {
GSMV1_STATE_PDU_CR,
GSMV1_STATE_PROMPT,
GSMV1_STATE_ECHO,
+ GSMV1_PPP_DATA,
};
enum GSM_PERMISSIVE_STATE {
@@ -79,6 +80,8 @@ static GAtSyntaxResult gsmv1_feed(GAtSyntax *syntax,
case GSMV1_STATE_IDLE:
if (byte == '\r')
syntax->state = GSMV1_STATE_INITIAL_CR;
+ else if (byte == '~')
+ syntax->state = GSMV1_PPP_DATA;
else
syntax->state = GSMV1_STATE_ECHO;
break;
@@ -199,6 +202,16 @@ static GAtSyntaxResult gsmv1_feed(GAtSyntax *syntax,
break;
+ case GSMV1_PPP_DATA:
+ if (byte == '~') {
+ syntax->state = GSMV1_STATE_IDLE;
+ res = G_AT_SYNTAX_RESULT_UNRECOGNIZED;
+ i += 1;
+ goto out;
+ }
+
+ break;
+
default:
break;
};