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