aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-01-04 10:49:07 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:44 +0100
commit14269e11386f41e89b821e40907ba6f4af81f72f (patch)
tree41d0a07c1ce5bd7a0eaa45303e2cb10d37ae4621 /src
parent0c6b505a6bd485d9bf65c105ed6bd7b35c930040 (diff)
broadband-modem: implement ESN retrieval
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index f8a63ce8..3a8a0fcb 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -2674,6 +2674,39 @@ setup_ps_registration (MMIfaceModem3gpp *self,
}
/*****************************************************************************/
+/* ESN (CDMA) */
+
+static gchar *
+load_esn_finish (MMIfaceModemCdma *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ gchar *esn;
+
+ esn = g_strdup (mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error));
+ if (!esn)
+ return NULL;
+
+ mm_dbg ("loaded ESN: %s", esn);
+ return esn;
+}
+
+static void
+load_esn (MMIfaceModemCdma *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ mm_dbg ("loading ESN...");
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+GSN",
+ 3,
+ TRUE,
+ NULL, /* cancellable */
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
typedef enum {
DISABLING_STEP_FIRST,
@@ -3567,6 +3600,9 @@ iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
static void
iface_modem_cdma_init (MMIfaceModemCdma *iface)
{
+ /* Initialization steps */
+ iface->load_esn = load_esn;
+ iface->load_esn_finish = load_esn_finish;
}
static void