diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-02-08 16:08:53 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:15:02 +0100 |
commit | ad3b3d0ba772c5d4603abcf2cfe6f5a4842fd92c (patch) | |
tree | 975d7881102ac287169ee1e54adee7c950622899 | |
parent | a1dc38360c57388058d955319cf32afc76e2ab4f (diff) |
iface-modem-messaging: don't allow method calls if not enabled
-rw-r--r-- | src/mm-iface-modem-messaging.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/mm-iface-modem-messaging.c b/src/mm-iface-modem-messaging.c index ae6ad86d..b13e1520 100644 --- a/src/mm-iface-modem-messaging.c +++ b/src/mm-iface-modem-messaging.c @@ -91,6 +91,20 @@ handle_delete (MmGdbusModemMessaging *skeleton, MMIfaceModemMessaging *self) { MMSmsList *list = NULL; + MMModemState modem_state; + + modem_state = MM_MODEM_STATE_UNKNOWN; + g_object_get (self, + MM_IFACE_MODEM_STATE, &modem_state, + NULL); + + if (modem_state < MM_MODEM_STATE_ENABLED) { + g_dbus_method_invocation_return_error (invocation, + MM_CORE_ERROR, + MM_CORE_ERROR_WRONG_STATE, + "Cannot delete SMS: device not yet enabled"); + return TRUE; + } g_object_get (self, MM_IFACE_MODEM_MESSAGING_SMS_LIST, &list, @@ -121,6 +135,20 @@ handle_create (MmGdbusModemMessaging *skeleton, MMSmsList *list = NULL; MMCommonSmsProperties *properties; MMSms *sms; + MMModemState modem_state; + + modem_state = MM_MODEM_STATE_UNKNOWN; + g_object_get (self, + MM_IFACE_MODEM_STATE, &modem_state, + NULL); + + if (modem_state < MM_MODEM_STATE_ENABLED) { + g_dbus_method_invocation_return_error (invocation, + MM_CORE_ERROR, + MM_CORE_ERROR_WRONG_STATE, + "Cannot create SMS: device not yet enabled"); + return TRUE; + } /* Parse input properties */ properties = mm_common_sms_properties_new_from_dictionary (dictionary, &error); @@ -166,6 +194,21 @@ handle_list (MmGdbusModemMessaging *skeleton, { GStrv paths; MMSmsList *list = NULL; + MMModemState modem_state; + + modem_state = MM_MODEM_STATE_UNKNOWN; + g_object_get (self, + MM_IFACE_MODEM_STATE, &modem_state, + NULL); + + if (modem_state < MM_MODEM_STATE_ENABLED) { + g_dbus_method_invocation_return_error (invocation, + MM_CORE_ERROR, + MM_CORE_ERROR_WRONG_STATE, + "Cannot list SMS messages: " + "device not yet enabled"); + return TRUE; + } g_object_get (self, MM_IFACE_MODEM_MESSAGING_SMS_LIST, &list, |