aboutsummaryrefslogtreecommitdiff
path: root/plugins/longcheer/mm-plugin-longcheer.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/longcheer/mm-plugin-longcheer.c')
-rw-r--r--plugins/longcheer/mm-plugin-longcheer.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/plugins/longcheer/mm-plugin-longcheer.c b/plugins/longcheer/mm-plugin-longcheer.c
index 55e574a7..d9217b79 100644
--- a/plugins/longcheer/mm-plugin-longcheer.c
+++ b/plugins/longcheer/mm-plugin-longcheer.c
@@ -67,20 +67,22 @@ static void longcheer_custom_init_step (LongcheerCustomInitContext *ctx);
static void
gmr_ready (MMPortSerialAt *port,
- GString *response,
- GError *error,
+ GAsyncResult *res,
LongcheerCustomInitContext *ctx)
{
const gchar *p;
+ const gchar *response;
+ GError *error = NULL;
+ response = mm_port_serial_at_command_finish (port, res, &error);
if (error) {
/* Just retry... */
longcheer_custom_init_step (ctx);
- return;
+ goto out;
}
/* Note the lack of a ':' on the GMR; the X200 doesn't send one */
- p = mm_strip_tag (response->str, "AT+GMR");
+ p = mm_strip_tag (response, "AT+GMR");
if (p && *p == 'L') {
/* X200 modems have a GMR firmware revision that starts with 'L', and
* as far as I can tell X060s devices have a revision starting with 'C'.
@@ -98,6 +100,10 @@ gmr_ready (MMPortSerialAt *port,
}
longcheer_custom_init_context_complete_and_free (ctx);
+
+out:
+ if (error)
+ g_error_free (error);
}
static void
@@ -124,13 +130,14 @@ longcheer_custom_init_step (LongcheerCustomInitContext *ctx)
}
ctx->retries--;
- mm_port_serial_at_queue_command (
+ mm_port_serial_at_command (
ctx->port,
"AT+GMR",
3,
FALSE, /* raw */
+ FALSE, /* allow_cached */
ctx->cancellable,
- (MMPortSerialAtResponseFn)gmr_ready,
+ (GAsyncReadyCallback)gmr_ready,
ctx);
}