From ed45d021e84b497e75ff4342ad369c615cc174a3 Mon Sep 17 00:00:00 2001 From: tick Date: Tue, 27 Nov 2007 08:24:57 +0000 Subject: gsmd: Refactorying get_imsi from PHONEBOOK to PHONE (tick) git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3519 99fdad57-331a-0410-800a-d7fa5415bdb3 --- src/gsmd/usock.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'src/gsmd') diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c index 0b81306..80165bf 100644 --- a/src/gsmd/usock.c +++ b/src/gsmd/usock.c @@ -263,6 +263,25 @@ static int phone_powerup_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) return 0; } +static int get_imsi_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) +{ + struct gsmd_user *gu = ctx; + struct gsmd_ucmd *ucmd; + + DEBUGP("resp: %s\n", resp); + + ucmd = gsmd_ucmd_fill(strlen(resp)+1, GSMD_MSG_PHONE, + GSMD_PHONE_GET_IMSI, 0); + if (!ucmd) + return -ENOMEM; + + strcpy(ucmd->buf, resp); + + usock_cmd_enqueue(ucmd, gu); + + return 0; +} + static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph, int len) { @@ -279,9 +298,14 @@ static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph, &null_cmd_cb, gu, 0, NULL); gu->gsmd->dev_state.on = 0; break; + case GSMD_PHONE_GET_IMSI: + cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL); + break; + default: return -EINVAL; } + if (!cmd) return -ENOMEM; @@ -961,25 +985,6 @@ static int phonebook_list_storage_cb(struct gsmd_atcmd *cmd, return 0; } -static int get_imsi_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) -{ - struct gsmd_user *gu = ctx; - struct gsmd_ucmd *ucmd; - - DEBUGP("resp: %s\n", resp); - - ucmd = gsmd_ucmd_fill(strlen(resp)+1, GSMD_MSG_PHONEBOOK, - GSMD_PHONEBOOK_GET_IMSI, 0); - if (!ucmd) - return -ENOMEM; - - strcpy(ucmd->buf, resp); - - usock_cmd_enqueue(ucmd, gu); - - return 0; -} - static int usock_rcv_phonebook(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,int len) @@ -1156,9 +1161,6 @@ static int usock_rcv_phonebook(struct gsmd_user *gu, usock_cmd_enqueue(ucmd, gu); break; - case GSMD_PHONEBOOK_GET_IMSI: - cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL); - break; default: return -EINVAL; -- cgit v1.2.3