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.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
g_printerr ("error: modem has no 3GPP capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
if (!ctx->modem_3gpp) {
|
||||
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);
|
||||
}
|
||||
|
||||
g_printerr ("error: modem has no USSD capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
if (!ctx->modem_3gpp_ussd) {
|
||||
g_printerr ("error: modem has no USSD capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Success */
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
g_printerr ("error: modem has no CDMA capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
if (!ctx->modem_cdma) {
|
||||
g_printerr ("error: modem has no CDMA capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Success */
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
g_printerr ("error: modem has no location capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
if (!ctx->modem_location) {
|
||||
g_printerr ("error: modem has no location capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Success */
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
g_printerr ("error: modem has no messaging capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
if (!ctx->modem_messaging) {
|
||||
g_printerr ("error: modem has no messaging capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Success */
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
g_printerr ("error: modem has no time capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
if (!ctx->modem_time) {
|
||||
g_printerr ("error: modem has no time capabilities\n");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Success */
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user