From 7518772d4bcb5f6a2c5d4fcf33346e1036625755 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Fri, 30 Mar 2012 11:06:32 +0200 Subject: [PATCH] core: fatal errors in iface initializations force the modem into a FAILED state Modems which end up being found unusable (e.g. no SIM, fatal SIM error, no capabilities) will be exposed in DBus, but just with the Modem interface and in a FAILED state which allows no actions. --- include/ModemManager-enums.h | 2 + .../org.freedesktop.ModemManager1.Modem.xml | 6 +- src/mm-base-modem.c | 18 +- src/mm-broadband-modem.c | 139 +++++++--- src/mm-iface-modem-3gpp.c | 22 +- src/mm-iface-modem-cdma.c | 20 +- src/mm-iface-modem.c | 245 +++++++----------- 7 files changed, 223 insertions(+), 229 deletions(-) diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h index 73fb2b9e..a8942ee2 100644 --- a/include/ModemManager-enums.h +++ b/include/ModemManager-enums.h @@ -92,6 +92,7 @@ typedef enum { /*< underscore_name=mm_modem_lock >*/ /** * MMModemState: + * @MM_MODEM_STATE_FAILED: The modem is unusable. * @MM_MODEM_STATE_UNKNOWN: State unknown or not reportable. * @MM_MODEM_STATE_INITIALIZING: The modem is currently being initialized. * @MM_MODEM_STATE_LOCKED: The modem needs to be unlocked. @@ -108,6 +109,7 @@ typedef enum { /*< underscore_name=mm_modem_lock >*/ * Enumeration of possible modem states. */ typedef enum { /*< underscore_name=mm_modem_state >*/ + MM_MODEM_STATE_FAILED = -1, MM_MODEM_STATE_UNKNOWN = 0, MM_MODEM_STATE_INITIALIZING = 1, MM_MODEM_STATE_LOCKED = 2, diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml index 7ddd6d7a..1a6b4519 100644 --- a/introspection/org.freedesktop.ModemManager1.Modem.xml +++ b/introspection/org.freedesktop.ModemManager1.Modem.xml @@ -172,8 +172,8 @@ The modem's state (see #org.freedesktop.ModemManager1.Modem:State) changed. --> - - + + @@ -333,7 +333,7 @@ MM_MODEM_STATE_UNKNOWN will be reported. --> - +