static void do_connect (MMModem *modem, const char *number, MMModemFn callback, gpointer user_data) { MMModemHso *self = MM_MODEM_HSO (modem); MMCallbackInfo *auth_info, *connect_info; mm_modem_set_state (modem, MM_MODEM_STATE_CONNECTING, MM_MODEM_STATE_REASON_NONE); connect_info = mm_callback_info_new (modem, callback, user_data); auth_info = mm_callback_info_new (modem, connect_auth_done, connect_info); _internal_hso_modem_authenticate (self, auth_info); }
void mm_modem_icera_do_connect (MMModemIcera *self, const char *number, MMModemFn callback, gpointer user_data) { MMModem *modem = MM_MODEM (self); MMModemIceraPrivate *priv = MM_MODEM_ICERA_GET_PRIVATE (self); MMCallbackInfo *info; MMAtSerialPort *primary; gint cid; char *command; mm_modem_set_state (modem, MM_MODEM_STATE_CONNECTING, MM_MODEM_STATE_REASON_NONE); info = mm_callback_info_new (modem, callback, user_data); primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (self), MM_AT_PORT_FLAG_PRIMARY); g_assert (primary); cid = _get_cid (self); /* Both user and password are required; otherwise firmware returns an error */ if (!priv->username || !priv->password) command = g_strdup_printf ("%%IPDPCFG=%d,0,0,\"\",\"\"", cid); else { command = g_strdup_printf ("%%IPDPCFG=%d,0,1,\"%s\",\"%s\"", cid, priv->username ? priv->username : "", priv->password ? priv->password : ""); } mm_at_serial_port_queue_command (primary, command, 3, auth_done, info); g_free (command); }