aboutsummaryrefslogtreecommitdiff
path: root/src/mm-generic-gsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-generic-gsm.c')
-rw-r--r--src/mm-generic-gsm.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c
index 2604b09f..b6d56616 100644
--- a/src/mm-generic-gsm.c
+++ b/src/mm-generic-gsm.c
@@ -4226,7 +4226,7 @@ get_csq_done (MMAtSerialPort *port,
gpointer user_data)
{
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
- char *reply = response->str;
+ char *reply;
gboolean parsed = FALSE;
/* If the modem has already been removed, return without
@@ -4239,6 +4239,7 @@ get_csq_done (MMAtSerialPort *port,
goto done;
}
+ reply = response->str;
if (!strncmp (reply, "+CSQ: ", 6)) {
/* Got valid reply */
int quality;
@@ -5756,6 +5757,9 @@ simple_status_got_signal_quality (MMModem *modem,
if (!error) {
properties = (GHashTable *) mm_callback_info_get_data (info, SS_HASH_TAG);
g_hash_table_insert (properties, "signal_quality", simple_uint_value (result));
+ } else {
+ g_clear_error (&info->error);
+ info->error = g_error_copy (error);
}
mm_callback_info_chain_complete_one (info);
}
@@ -5772,6 +5776,9 @@ simple_status_got_band (MMModem *modem,
if (!error) {
properties = (GHashTable *) mm_callback_info_get_data (info, SS_HASH_TAG);
g_hash_table_insert (properties, "band", simple_uint_value (result));
+ } else {
+ g_clear_error (&info->error);
+ info->error = g_error_copy (error);
}
mm_callback_info_chain_complete_one (info);
}
@@ -5791,9 +5798,10 @@ simple_status_got_reg_info (MMModemGsmNetwork *modem,
if (!modem || mm_callback_info_check_modem_removed (info))
return;
- if (error)
+ if (error) {
+ g_clear_error (&info->error);
info->error = g_error_copy (error);
- else {
+ } else {
properties = (GHashTable *) mm_callback_info_get_data (info, SS_HASH_TAG);
g_hash_table_insert (properties, "registration_status", simple_uint_value (status));