diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-09-19 10:20:33 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-09-27 08:28:07 +0000 |
commit | b50c24acd151a64c992e51332a6b1a23dde15f11 (patch) | |
tree | 6fed923b185e00e6dd4fc36c54567095f4b6edb2 /src/mm-iface-modem-sar.c | |
parent | 0994087f1890548f161d7a4512232c39aec26c50 (diff) |
iface-modem-sar: disallow changing SAR level if SAR disabled
This was already forbidden in the MBIM implementation, and we should
also have it in the QMI implementation, so just make it a generic
check in the interface.
Diffstat (limited to 'src/mm-iface-modem-sar.c')
-rw-r--r-- | src/mm-iface-modem-sar.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/src/mm-iface-modem-sar.c b/src/mm-iface-modem-sar.c index e03b1596..e8cbf698 100644 --- a/src/mm-iface-modem-sar.c +++ b/src/mm-iface-modem-sar.c @@ -35,24 +35,6 @@ mm_iface_modem_sar_bind_simple_status (MMIfaceModemSar *self, { } -gboolean -mm_iface_modem_get_sar_state (MMIfaceModemSar *self) -{ - MmGdbusModemSar *skeleton = NULL; - gboolean state; - - g_object_get (self, - MM_IFACE_MODEM_SAR_DBUS_SKELETON, &skeleton, - NULL); - - if (!skeleton) - return FALSE; - - state = mm_gdbus_modem_sar_get_state (skeleton); - g_object_unref (skeleton); - return state; -} - guint mm_iface_modem_sar_get_power_level (MMIfaceModemSar *self) { @@ -222,6 +204,15 @@ handle_set_power_level_auth_ready (MMBaseModem *self, return; } + if (!mm_gdbus_modem_sar_get_state (ctx->skeleton)) { + g_dbus_method_invocation_return_error (ctx->invocation, + MM_CORE_ERROR, + MM_CORE_ERROR_WRONG_STATE, + "Cannot set SAR power level: SAR is disabled"); + handle_set_power_level_context_free (ctx); + return; + } + mm_obj_dbg (self, "Set SAR power level to: '%d'", ctx->power_level); MM_IFACE_MODEM_SAR_GET_INTERFACE (ctx->self)->set_power_level ( ctx->self, |