mirror of git://git.sysmocom.de/ofono
gatsyntax: support short prompt in v1 parser
This commit is contained in:
parent
b6d6282158
commit
2ed142de3c
|
@ -44,6 +44,8 @@ enum GSMV1_STATE {
|
|||
GSMV1_STATE_PROMPT,
|
||||
GSMV1_STATE_ECHO,
|
||||
GSMV1_STATE_PPP_DATA,
|
||||
GSMV1_STATE_SHORT_PROMPT,
|
||||
GSMV1_STATE_SHORT_PROMPT_CR,
|
||||
};
|
||||
|
||||
enum GSM_PERMISSIVE_STATE {
|
||||
|
@ -66,6 +68,9 @@ static void gsmv1_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint)
|
|||
case G_AT_SYNTAX_EXPECT_MULTILINE:
|
||||
syntax->state = GSMV1_STATE_GUESS_MULTILINE_RESPONSE;
|
||||
break;
|
||||
case G_AT_SYNTAX_EXPECT_SHORT_PROMPT:
|
||||
syntax->state = GSMV1_STATE_SHORT_PROMPT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
@ -228,6 +233,25 @@ static GAtSyntaxResult gsmv1_feed(GAtSyntax *syntax,
|
|||
|
||||
break;
|
||||
|
||||
case GSMV1_STATE_SHORT_PROMPT:
|
||||
if (byte == '\r')
|
||||
syntax->state = GSMV1_STATE_SHORT_PROMPT_CR;
|
||||
else
|
||||
syntax->state = GSMV1_STATE_ECHO;
|
||||
|
||||
break;
|
||||
|
||||
case GSMV1_STATE_SHORT_PROMPT_CR:
|
||||
if (byte == '\n') {
|
||||
syntax->state = GSMV1_STATE_IDLE;
|
||||
i += 1;
|
||||
res = G_AT_SYNTAX_RESULT_PROMPT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
syntax->state = GSMV1_STATE_RESPONSE;
|
||||
return G_AT_SYNTAX_RESULT_UNSURE;
|
||||
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue