aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2017-10-07 10:50:48 +0200
committerAleksander Morgado <aleksander@aleksander.es>2017-10-07 10:55:16 +0200
commit74d8a69b4ec855c84249458416be584a5be3e4c1 (patch)
tree690ce88c50cdd1be902f532666c38b65b0d691ad
parent3c2b974bbd5d9bc6645fa6eed93504ef84739dc1 (diff)
iridium: simplify a bit the saved_error logic in connect
Note that saved_error will be freed along with the context, unless it's set to NULL.
-rw-r--r--plugins/iridium/mm-bearer-iridium.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/plugins/iridium/mm-bearer-iridium.c b/plugins/iridium/mm-bearer-iridium.c
index f266f12d..d0adeb0c 100644
--- a/plugins/iridium/mm-bearer-iridium.c
+++ b/plugins/iridium/mm-bearer-iridium.c
@@ -66,7 +66,6 @@ connect_report_ready (MMBaseModem *modem,
{
ConnectContext *ctx;
const gchar *result;
- GError *error = NULL;
/* If cancelled, complete */
if (g_task_return_error_if_cancelled (task)) {
@@ -79,16 +78,15 @@ connect_report_ready (MMBaseModem *modem,
/* If we got a proper extended reply, build the new error to be set */
result = mm_base_modem_at_command_full_finish (modem, res, NULL);
if (result && g_str_has_prefix (result, "+CEER: ") && strlen (result) > 7) {
- error = g_error_new (ctx->saved_error->domain,
- ctx->saved_error->code,
- "%s", &result[7]);
- g_error_free (ctx->saved_error);
- } else
+ g_task_return_new_error (task,
+ ctx->saved_error->domain,
+ ctx->saved_error->code,
+ "%s", &result[7]);
+ } else {
/* Otherwise, take the original error as it was */
- g_propagate_error (&error, ctx->saved_error);
-
- ctx->saved_error = NULL;
- g_task_return_error (task, error);
+ g_task_return_error (task, ctx->saved_error);
+ ctx->saved_error = NULL;
+ }
g_object_unref (task);
}