aboutsummaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-03-26 13:00:07 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-03-26 13:00:07 +0200
commit28f13c09ecf6433385d9b7a8cff5be825d74c9c8 (patch)
treed3529febb689258b8535f1c02ec88a344b7d00b6 /cli
parentd10780dcf573749137710c376edf52086e2b4500 (diff)
mmcli: abort certain operations if modem is unlocked
Do not try to perform feature/capability specific actions if we're still unlocked, as the modem didn't yet export the feature/capability specific interface. The only interfaces expected while modem is unlocked are the Modem and Simple interfaces, as well as the SIM interface in the SIM object, of course.
Diffstat (limited to 'cli')
-rw-r--r--cli/mmcli-modem-3gpp.c28
-rw-r--r--cli/mmcli-modem-cdma.c14
-rw-r--r--cli/mmcli-modem-location.c14
-rw-r--r--cli/mmcli-modem-messaging.c14
-rw-r--r--cli/mmcli-modem-simple.c9
-rw-r--r--cli/mmcli-modem-time.c14
6 files changed, 65 insertions, 28 deletions
diff --git a/cli/mmcli-modem-3gpp.c b/cli/mmcli-modem-3gpp.c
index 7e141be5..75b8ee14 100644
--- a/cli/mmcli-modem-3gpp.c
+++ b/cli/mmcli-modem-3gpp.c
@@ -161,21 +161,33 @@ context_free (Context *ctx)
static void
ensure_modem_3gpp (void)
{
- if (ctx->modem_3gpp)
- return;
+ if (mm_modem_get_unlock_required (mm_object_peek_modem (ctx->object)) != MM_MODEM_LOCK_NONE) {
+ g_printerr ("error: modem not unlocked yet\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (!ctx->modem_3gpp) {
+ g_printerr ("error: modem has no 3GPP capabilities\n");
+ exit (EXIT_FAILURE);
+ }
- g_printerr ("error: modem has no 3GPP capabilities\n");
- exit (EXIT_FAILURE);
+ /* Success */
}
static void
ensure_modem_3gpp_ussd (void)
{
- if (ctx->modem_3gpp_ussd)
- return;
+ if (mm_modem_get_unlock_required (mm_object_peek_modem (ctx->object)) != MM_MODEM_LOCK_NONE) {
+ g_printerr ("error: modem not unlocked yet\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (!ctx->modem_3gpp_ussd) {
+ g_printerr ("error: modem has no USSD capabilities\n");
+ exit (EXIT_FAILURE);
+ }
- g_printerr ("error: modem has no USSD capabilities\n");
- exit (EXIT_FAILURE);
+ /* Success */
}
void
diff --git a/cli/mmcli-modem-cdma.c b/cli/mmcli-modem-cdma.c
index 2e8cdb77..00979a42 100644
--- a/cli/mmcli-modem-cdma.c
+++ b/cli/mmcli-modem-cdma.c
@@ -108,11 +108,17 @@ context_free (Context *ctx)
static void
ensure_modem_cdma (void)
{
- if (ctx->modem_cdma)
- return;
+ if (mm_modem_get_unlock_required (mm_object_peek_modem (ctx->object)) != MM_MODEM_LOCK_NONE) {
+ g_printerr ("error: modem not unlocked yet\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (!ctx->modem_cdma) {
+ g_printerr ("error: modem has no CDMA capabilities\n");
+ exit (EXIT_FAILURE);
+ }
- g_printerr ("error: modem has no CDMA capabilities\n");
- exit (EXIT_FAILURE);
+ /* Success */
}
void
diff --git a/cli/mmcli-modem-location.c b/cli/mmcli-modem-location.c
index 49afd0ac..22e7aa1a 100644
--- a/cli/mmcli-modem-location.c
+++ b/cli/mmcli-modem-location.c
@@ -120,11 +120,17 @@ context_free (Context *ctx)
static void
ensure_modem_location (void)
{
- if (ctx->modem_location)
- return;
+ if (mm_modem_get_unlock_required (mm_object_peek_modem (ctx->object)) != MM_MODEM_LOCK_NONE) {
+ g_printerr ("error: modem not unlocked yet\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (!ctx->modem_location) {
+ g_printerr ("error: modem has no location capabilities\n");
+ exit (EXIT_FAILURE);
+ }
- g_printerr ("error: modem has no location capabilities\n");
- exit (EXIT_FAILURE);
+ /* Success */
}
void
diff --git a/cli/mmcli-modem-messaging.c b/cli/mmcli-modem-messaging.c
index b8052e07..f717552c 100644
--- a/cli/mmcli-modem-messaging.c
+++ b/cli/mmcli-modem-messaging.c
@@ -120,11 +120,17 @@ context_free (Context *ctx)
static void
ensure_modem_messaging (void)
{
- if (ctx->modem_messaging)
- return;
+ if (mm_modem_get_unlock_required (mm_object_peek_modem (ctx->object)) != MM_MODEM_LOCK_NONE) {
+ g_printerr ("error: modem not unlocked yet\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (!ctx->modem_messaging) {
+ g_printerr ("error: modem has no messaging capabilities\n");
+ exit (EXIT_FAILURE);
+ }
- g_printerr ("error: modem has no messaging capabilities\n");
- exit (EXIT_FAILURE);
+ /* Success */
}
void
diff --git a/cli/mmcli-modem-simple.c b/cli/mmcli-modem-simple.c
index 29df8a34..53277038 100644
--- a/cli/mmcli-modem-simple.c
+++ b/cli/mmcli-modem-simple.c
@@ -125,11 +125,12 @@ context_free (Context *ctx)
static void
ensure_modem_simple (void)
{
- if (ctx->modem_simple)
- return;
+ if (!ctx->modem_simple) {
+ g_printerr ("error: modem has no Simple capabilities\n");
+ exit (EXIT_FAILURE);
+ }
- g_printerr ("error: modem has no Simple capabilities\n");
- exit (EXIT_FAILURE);
+ /* Success */
}
void
diff --git a/cli/mmcli-modem-time.c b/cli/mmcli-modem-time.c
index 8ec5740c..7bc277c6 100644
--- a/cli/mmcli-modem-time.c
+++ b/cli/mmcli-modem-time.c
@@ -108,11 +108,17 @@ context_free (Context *ctx)
static void
ensure_modem_time (void)
{
- if (ctx->modem_time)
- return;
+ if (mm_modem_get_unlock_required (mm_object_peek_modem (ctx->object)) != MM_MODEM_LOCK_NONE) {
+ g_printerr ("error: modem not unlocked yet\n");
+ exit (EXIT_FAILURE);
+ }
+
+ if (!ctx->modem_time) {
+ g_printerr ("error: modem has no time capabilities\n");
+ exit (EXIT_FAILURE);
+ }
- g_printerr ("error: modem has no time capabilities\n");
- exit (EXIT_FAILURE);
+ /* Success */
}
void