static void list_bearers_process_reply (GList *result, const GError *error) { if (error) { g_printerr ("error: couldn't list bearers: '%s'\n", error->message); exit (EXIT_FAILURE); } g_print ("\n"); if (!result) { g_print ("No bearers were found\n"); } else { GList *l; g_print ("Found %u bearers:\n", g_list_length (result)); for (l = result; l; l = g_list_next (l)) { MMBearer *bearer = MM_BEARER (l->data); g_print ("\n"); print_bearer_short_info (bearer); g_object_unref (bearer); } g_list_free (result); } }
void mm_broadband_bearer_hso_report_connection_status (MMBroadbandBearerHso *self, MMBroadbandBearerHsoConnectionStatus status) { Dial3gppContext *ctx; /* Recover context (if any) and remove both cancellation and timeout (if any)*/ ctx = self->priv->connect_pending; self->priv->connect_pending = NULL; if (self->priv->connect_pending_id) { g_source_remove (self->priv->connect_pending_id); self->priv->connect_pending_id = 0; } if (self->priv->connect_cancellable_id) { g_cancellable_disconnect (ctx->cancellable, self->priv->connect_cancellable_id); self->priv->connect_cancellable_id = 0; } switch (status) { case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_UNKNOWN: g_warn_if_reached (); break; case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTED: if (!ctx) break; g_simple_async_result_set_op_res_gboolean (ctx->result, TRUE); dial_3gpp_context_complete_and_free (ctx); return; case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_CONNECTION_FAILED: if (!ctx) break; g_simple_async_result_set_error (ctx->result, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Call setup failed"); dial_3gpp_context_complete_and_free (ctx); return; case MM_BROADBAND_BEARER_HSO_CONNECTION_STATUS_DISCONNECTED: if (ctx) { g_simple_async_result_set_error (ctx->result, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Call setup failed"); dial_3gpp_context_complete_and_free (ctx); } else { /* Just ensure we mark ourselves as being disconnected... */ mm_bearer_report_disconnection (MM_BEARER (self)); } break; } }
MMBearer * mm_broadband_bearer_novatel_new_finish (GAsyncResult *res, GError **error) { GObject *bearer; GObject *source; source = g_async_result_get_source_object (res); bearer = g_async_initable_new_finish (G_ASYNC_INITABLE (source), res, error); g_object_unref (source); if (!bearer) return NULL; /* Only export valid bearers */ mm_bearer_export (MM_BEARER (bearer)); return MM_BEARER (bearer); }
static void dispose (GObject *object) { MMBearer *self = MM_BEARER (object); g_clear_object (&self->priv->ipv4_config); g_clear_object (&self->priv->ipv6_config); g_clear_object (&self->priv->properties); G_OBJECT_CLASS (mm_bearer_parent_class)->dispose (object); }
static void finalize (GObject *object) { MMBearer *self = MM_BEARER (object); g_mutex_clear (&self->priv->ipv4_config_mutex); g_mutex_clear (&self->priv->ipv6_config_mutex); g_mutex_clear (&self->priv->properties_mutex); G_OBJECT_CLASS (mm_bearer_parent_class)->finalize (object); }
static MMBearer * find_bearer_in_list (GList *list, const gchar *bearer_path) { GList *l; for (l = list; l; l = g_list_next (l)) { MMBearer *bearer = MM_BEARER (l->data); if (g_str_equal (mm_bearer_get_path (bearer), bearer_path)) { g_debug ("Bearer found at '%s'\n", bearer_path); return g_object_ref (bearer); } } return NULL; }