Fix a problem with CtrlZ echo
authorDenis Kenzior <denis.kenzior@intel.com>
Sat, 29 Aug 2009 15:44:44 +0000 (10:44 -0500)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 29 Aug 2009 17:24:07 +0000 (10:24 -0700)
When a PDU is submitted and echoed by the modem, the CtrlZ character
is also echoed back.  Fix the parser to handle this case appropriately.

gatchat/gatsyntax.c

index 5db01a7..d7c9ee2 100644 (file)
@@ -182,6 +182,16 @@ static GAtSyntaxResult gsmv1_feed(GAtSyntax *syntax,
                case GSMV1_STATE_GARBAGE:
                        if (byte == '\r')
                                syntax->state = GSMV1_STATE_GARBAGE_CHECK_LF;
+                       /* This handles the case of echo of the PDU terminated
+                        * by CtrlZ character
+                        */
+                       else if (byte == 26) {
+                               syntax->state = GSMV1_STATE_IDLE;
+                               res = G_AT_SYNTAX_RESULT_UNRECOGNIZED;
+                               i += 1;
+                               goto out;
+                       }
+
                        break;
 
                case GSMV1_STATE_GARBAGE_CHECK_LF: