예제 #1
0
static void
list_bearers_ready (MMModem *modem,
                    GAsyncResult *res,
                    GetBearerContext *ctx)
{
    GList *bearers;
    GError *error = NULL;

    bearers = mm_modem_list_bearers_finish (modem, res, &error);
    if (error) {
        g_printerr ("error: couldn't list bearers at '%s': '%s'\n",
                    mm_modem_get_path (modem),
                    error->message);
        exit (EXIT_FAILURE);
    }

    ctx->bearer = find_bearer_in_list (bearers, ctx->bearer_path);
    g_list_free_full (bearers, (GDestroyNotify) g_object_unref);

    /* Found! */
    if (ctx->bearer) {
        g_simple_async_result_set_op_res_gpointer (
            ctx->result,
            ctx,
            (GDestroyNotify)get_bearer_context_free);
        get_bearer_context_complete (ctx);
        return;
    }

    /* Not found, try with next modem */
    look_for_bearer_in_modem (ctx);
}
예제 #2
0
static void
list_bearers_ready (MMModem      *modem,
                    GAsyncResult *result,
                    gpointer      nothing)
{
    GList *operation_result;
    GError *error = NULL;

    operation_result = mm_modem_list_bearers_finish (modem, result, &error);
    list_bearers_process_reply (operation_result, error);

    mmcli_async_operation_done ();
}