r4084 - in trunk/src/target/gsm: include/gsmd src/gsmd src/util
erin_yueh at sita.openmoko.org
erin_yueh at sita.openmoko.org
Mon Feb 18 10:42:34 CET 2008
Author: erin_yueh
Date: 2008-02-18 10:42:28 +0100 (Mon, 18 Feb 2008)
New Revision: 4084
Modified:
trunk/src/target/gsm/include/gsmd/gsmd.h
trunk/src/target/gsm/src/gsmd/usock.c
trunk/src/target/gsm/src/util/shell.c
Log:
gsmd: bug fixed for some changes (Sudharshan S, Paulius Zaleckas)
Modified: trunk/src/target/gsm/include/gsmd/gsmd.h
===================================================================
--- trunk/src/target/gsm/include/gsmd/gsmd.h 2008-02-18 09:42:18 UTC (rev 4083)
+++ trunk/src/target/gsm/include/gsmd/gsmd.h 2008-02-18 09:42:28 UTC (rev 4084)
@@ -73,7 +73,6 @@
#define GSMD_FLAG_SMS_FMT_TEXT 0x0002 /* TODO Use TEXT rather than PDU mode */
#define GSMD_ATCMD_TIMEOUT 60 /* If doesn get respond within 60 secs, discard */
-#define GSMD_MAX_INFO_LEN 64 /* by the standard it should be 2048, way too much :) */
struct gsmd {
unsigned int flags;
Modified: trunk/src/target/gsm/src/gsmd/usock.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/usock.c 2008-02-18 09:42:18 UTC (rev 4083)
+++ trunk/src/target/gsm/src/gsmd/usock.c 2008-02-18 09:42:28 UTC (rev 4084)
@@ -618,12 +618,10 @@
struct gsmd_user *gu = ctx;
DEBUGP("cmd = '%s', resp: '%s'\n", cmd->buf, resp);
- if (strncmp(resp, "+CGMI: ", 7))
- return -EINVAL;
- resp += 7;
+ if (!strncmp(resp, "+CGMI: ", 7))
+ resp += 7;
return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_MANUF,
cmd->id, strlen(resp) + 1, resp);
- return 0;
}
static int gsmd_get_model_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
@@ -631,12 +629,10 @@
struct gsmd_user *gu = ctx;
DEBUGP("cmd = '%s', resp: '%s'\n", cmd->buf, resp);
- if (strncmp(resp, "+CGMM: ", 7))
- return -EINVAL;
- resp += 7;
+ if (!strncmp(resp, "+CGMM: ", 7))
+ resp += 7;
return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_MODEL,
cmd->id, strlen(resp) + 1, resp);
- return 0;
}
static int gsmd_get_revision_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
@@ -644,12 +640,10 @@
struct gsmd_user *gu = ctx;
DEBUGP("cmd = '%s', resp: '%s'\n", cmd->buf, resp);
- if (strncmp(resp, "+CGMR: ", 7))
- return -EINVAL;
- resp += 7;
+ if (!strncmp(resp, "+CGMR: ", 7))
+ resp += 7;
return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_REVISION,
cmd->id, strlen(resp) + 1, resp);
- return 0;
}
static int gsmd_get_serial_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
@@ -657,12 +651,10 @@
struct gsmd_user *gu = ctx;
DEBUGP("cmd = '%s', resp: '%s'\n", cmd->buf, resp);
- if (strncmp(resp, "+CGSN: ", 7))
- return -EINVAL;
- resp += 7;
+ if (!strncmp(resp, "+CGSN: ", 7))
+ resp += 7;
return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_SERIAL,
cmd->id, strlen(resp) + 1, resp);
- return 0;
}
static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,
@@ -868,7 +860,7 @@
if ( !er )
return -ENOMEM;
-
+
//extrsp_dump(er);
/* Format: <mode>[,<format>,<oper>] */
@@ -878,12 +870,11 @@
/* In case we're not registered, return an empty string */
buf[0] = '\0';
}
- else if ( er->num_tokens == 3 &&
+ else if ( er->num_tokens >= 3 &&
er->tokens[0].type == GSMD_ECMD_RTT_NUMERIC &&
er->tokens[1].type == GSMD_ECMD_RTT_NUMERIC &&
er->tokens[2].type == GSMD_ECMD_RTT_STRING ) {
-
strlcpy(buf, er->tokens[2].u.string, sizeof(buf));
}
else {
Modified: trunk/src/target/gsm/src/util/shell.c
===================================================================
--- trunk/src/target/gsm/src/util/shell.c 2008-02-18 09:42:18 UTC (rev 4083)
+++ trunk/src/target/gsm/src/util/shell.c 2008-02-18 09:42:28 UTC (rev 4084)
@@ -392,28 +392,23 @@
static int phone_msghandler(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh)
{
- char *payload;
+ char *payload = (char *)gmh + sizeof(*gmh);
int *intresult = (void *)gmh + sizeof(*gmh);
switch (gmh->msg_subtype) {
case GSMD_PHONE_GET_IMSI:
- payload = (char *)gmh + sizeof(*gmh);
printf("imsi <%s>\n", payload);
break;
case GSMD_PHONE_GET_MANUF:
- payload = (char *)gmh + sizeof(*gmh);
printf("manufacturer: %s\n", payload);
break;
case GSMD_PHONE_GET_MODEL:
- payload = (char *)gmh + sizeof(*gmh);
printf("model: %s\n", payload);
break;
case GSMD_PHONE_GET_REVISION:
- payload = (char *)gmh + sizeof(*gmh);
printf("revision: %s\n", payload);
break;
case GSMD_PHONE_GET_SERIAL:
- payload = (char *)gmh + sizeof(*gmh);
printf("serial: %s\n", payload);
break;
case GSMD_PHONE_POWERUP:
More information about the commitlog
mailing list