diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-01-04 10:49:07 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:44 +0100 |
commit | 14269e11386f41e89b821e40907ba6f4af81f72f (patch) | |
tree | 41d0a07c1ce5bd7a0eaa45303e2cb10d37ae4621 | |
parent | 0c6b505a6bd485d9bf65c105ed6bd7b35c930040 (diff) |
broadband-modem: implement ESN retrieval
-rw-r--r-- | src/mm-broadband-modem.c | 36 |
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 |