summaryrefslogtreecommitdiff
path: root/src/gsmd/usock.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gsmd/usock.c')
-rw-r--r--src/gsmd/usock.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c
index fd602b5..76adc9b 100644
--- a/src/gsmd/usock.c
+++ b/src/gsmd/usock.c
@@ -383,6 +383,14 @@ static int get_imsi_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
cmd->id, strlen(resp) + 1, resp);
}
+static int get_cpin_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
+{
+ DEBUGP("resp: %s\n", resp);
+
+ return gsmd_ucmd_submit(ctx, GSMD_MSG_PHONE, GSMD_PIN_GET_STATUS,
+ cmd->id, strlen(resp) + 1, resp);
+}
+
static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,
int len)
{
@@ -402,7 +410,10 @@ static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,
case GSMD_PHONE_GET_IMSI:
cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL);
break;
-
+
+ case GSMD_PIN_GET_STATUS:
+ cmd = atcmd_fill("AT+CPIN?", 8 + 1, &get_cpin_cb, gu, 0, NULL);
+ break;
default:
return -EINVAL;
}
personal git repositories of Harald Welte. Your mileage may vary