summaryrefslogtreecommitdiff
path: root/src/gsmd/atcmd.c
diff options
context:
space:
mode:
authorlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2006-10-23 21:55:39 +0000
committerlaforge <laforge@99fdad57-331a-0410-800a-d7fa5415bdb3>2006-10-23 21:55:39 +0000
commit457c6293505e37da59a8af0338dd8688ba8acf13 (patch)
tree5cbbb7a33e505debab3f5601c173ac4536b7c238 /src/gsmd/atcmd.c
parentcbffc8d64707828b045b679e8db0269ae362ffcf (diff)
first working revision of gsmd, libgsmd and libgsmd-tool
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@115 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/gsmd/atcmd.c')
-rw-r--r--src/gsmd/atcmd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gsmd/atcmd.c b/src/gsmd/atcmd.c
index 2647192..53120f4 100644
--- a/src/gsmd/atcmd.c
+++ b/src/gsmd/atcmd.c
@@ -156,6 +156,11 @@ static int ml_parse(const char *buf, int len, void *ctx)
DEBUGP("buf=`%s'(%d)\n", buf, len);
+ if (!strcmp(buf, "AT-Command Interpreter ready")) {
+ gsmd_initsettings(g);
+ return 0;
+ }
+
/* responses come in order, so first response has to be for first
* command we sent, i.e. first entry in list */
cmd = llist_entry(g->busy_atcmds.next, struct gsmd_atcmd, list);
@@ -248,13 +253,15 @@ static int ml_parse(const char *buf, int len, void *ctx)
/* FIXME: handling of those special commands in response to
* ATD / ATA */
- if (!strncmp(buf, "NO CARRIER", 10)) {
+ if (!strncmp(buf, "NO CARRIER", 11)) {
/* Part of Case 'D' */
+ final = 1;
goto final_cb;
}
if (!strncmp(buf, "BUSY", 4)) {
/* Part of Case 'D' */
+ final = 1;
goto final_cb;
}
}
@@ -388,6 +395,8 @@ struct gsmd_atcmd *atcmd_fill(const char *cmd, int rlen,
/* submit an atcmd in the global queue of pending atcmds */
int atcmd_submit(struct gsmd *g, struct gsmd_atcmd *cmd)
{
+ DEBUGP("submitting command `%s'\n", cmd->buf);
+
llist_add_tail(&cmd->list, &g->pending_atcmds);
g->gfd_uart.when |= GSMD_FD_WRITE;
personal git repositories of Harald Welte. Your mileage may vary