diff options
Diffstat (limited to 'src/mm-broadband-modem.c')
-rw-r--r-- | src/mm-broadband-modem.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 6eb04fe2..16d579c7 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -63,6 +63,7 @@ #include "libqcdm/src/logs.h" #include "libqcdm/src/log-items.h" #include "mm-helper-enums-types.h" +#include "mm-bind.h" static void iface_modem_init (MMIfaceModemInterface *iface); static void iface_modem_3gpp_init (MMIfaceModem3gppInterface *iface); @@ -504,6 +505,7 @@ modem_create_sim (MMIfaceModem *self, { /* New generic SIM */ mm_base_sim_new (MM_BASE_MODEM (self), + G_OBJECT (self), NULL, /* cancellable */ callback, user_data); @@ -5905,6 +5907,7 @@ modem_3gpp_create_initial_eps_bearer (MMIfaceModem3gpp *self, * attempt connection through this bearer object. */ bearer = g_object_new (MM_TYPE_BASE_BEARER, MM_BASE_BEARER_MODEM, MM_BASE_MODEM (self), + MM_BIND_TO, G_OBJECT (self), MM_BASE_BEARER_CONFIG, config, "bearer-type", MM_BEARER_TYPE_DEFAULT_ATTACH, "connected", TRUE, @@ -8896,6 +8899,7 @@ modem_voice_create_call (MMIfaceModemVoice *_self, MMBroadbandModem *self = MM_BROADBAND_MODEM (_self); return mm_base_call_new (MM_BASE_MODEM (self), + G_OBJECT (self), direction, number, /* If +CLCC is supported, we want no incoming timeout. @@ -10602,7 +10606,7 @@ cbc_cbm_received (MMPortSerialAt *port, GMatchInfo *info, MMBroadbandModem *self) { - GError *error = NULL; + g_autoptr(GError) error = NULL; MMCbmPart *part; guint length; gchar *pdu; @@ -10617,15 +10621,19 @@ cbc_cbm_received (MMPortSerialAt *port, return; part = mm_cbm_part_new_from_pdu (pdu, self, &error); - if (part) { - mm_obj_dbg (self, "correctly parsed PDU"); - mm_iface_modem_cell_broadcast_take_part (MM_IFACE_MODEM_CELL_BROADCAST (self), - part, - MM_CBM_STATE_RECEIVED); - } else { + if (!part) { /* Don't treat the error as critical */ mm_obj_dbg (self, "error parsing PDU: %s", error->message); - g_error_free (error); + } else { + mm_obj_dbg (self, "correctly parsed PDU"); + if (!mm_iface_modem_cell_broadcast_take_part (MM_IFACE_MODEM_CELL_BROADCAST (self), + G_OBJECT (self), + part, + MM_CBM_STATE_RECEIVED, + &error)) { + /* Don't treat the error as critical */ + mm_obj_dbg (self, "error adding CBM: %s", error->message); + } } } @@ -10682,15 +10690,6 @@ modem_cell_broadcast_cleanup_unsolicited_events (MMIfaceModemCellBroadcast *self set_cell_broadcast_unsolicited_events_handlers (self, FALSE, callback, user_data); } -/*****************************************************************************/ -/* Create CBM (CellBroadcast interface) */ - -static MMBaseCbm * -modem_cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *self) -{ - return mm_base_cbm_new (MM_BASE_MODEM (self)); -} - /***********************************************************************************/ /* Get channels (CellBroadcast interface) */ @@ -14503,7 +14502,6 @@ iface_modem_cell_broadcast_init (MMIfaceModemCellBroadcastInterface *iface) iface->cleanup_unsolicited_events_finish = modem_cell_broadcast_setup_cleanup_unsolicited_events_finish; iface->set_channels = modem_cell_broadcast_set_channels; iface->set_channels_finish = modem_cell_broadcast_set_channels_finish; - iface->create_cbm = modem_cell_broadcast_create_cbm; } static void |