summaryrefslogtreecommitdiffstats
path: root/gatchat/gatserver.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-02-15 14:34:26 -0600
committerDenis Kenzior <denkenz@gmail.com>2011-02-15 15:47:32 -0600
commita0cca0a970fb46fe2a3ee2615271da7d8a60c071 (patch)
tree87202bcb9bb0c15a9ef46a840f4889c253509a99 /gatchat/gatserver.c
parent5da299ad344402c64bc8de90c6def5972c71000b (diff)
downloadofono-a0cca0a970fb46fe2a3ee2615271da7d8a60c071.tar.bz2
gatserver: extend D with GSM/UMTS specifics
Diffstat (limited to 'gatchat/gatserver.c')
-rw-r--r--gatchat/gatserver.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gatchat/gatserver.c b/gatchat/gatserver.c
index 6a976dc5..b18e888e 100644
--- a/gatchat/gatserver.c
+++ b/gatchat/gatserver.c
@@ -618,6 +618,9 @@ static unsigned int parse_basic_command(GAtServer *server, char *buf)
while (buf[i] != '\0' && buf[i] != ';')
i += 1;
+ if (buf[i] == ';')
+ i += 1;
+
goto done;
}
@@ -661,10 +664,13 @@ done:
} else /* Handle S-parameter with 100+ */
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
- /* Commands like ATA, ATZ cause the remainder line
- * to be ignored.
+ /*
+ * Commands like ATA, ATZ cause the remainder linevto be ignored.
+ * In GSM/UMTS the ATD uses the separator ';' character as a voicecall
+ * modifier, so we ignore everything coming after that character
+ * as well.
*/
- if (prefix[0] == 'A' || prefix[0] == 'Z')
+ if (prefix[0] == 'A' || prefix[0] == 'Z' || prefix[0] == 'D')
return strlen(buf);
/* Consume the seperator ';' */