aboutsummaryrefslogtreecommitdiff
path: root/plugins/mm-modem-hso.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mm-modem-hso.c')
-rw-r--r--plugins/mm-modem-hso.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/plugins/mm-modem-hso.c b/plugins/mm-modem-hso.c
index 4fe6fd03..8a7ffdbb 100644
--- a/plugins/mm-modem-hso.c
+++ b/plugins/mm-modem-hso.c
@@ -141,8 +141,10 @@ _internal_hso_modem_authenticate (MMModemHso *self, MMCallbackInfo *info)
g_assert (primary);
cid = hso_get_cid (self);
+ g_warn_if_fail (cid >= 0);
- if (!priv->username && !priv->password)
+ /* Both user and password are required; otherwise firmware returns an error */
+ if (!priv->username || !priv->password)
command = g_strdup_printf ("%s=%d,0", auth_commands[priv->auth_idx], cid);
else {
command = g_strdup_printf ("%s=%d,1,\"%s\",\"%s\"",
@@ -367,14 +369,13 @@ do_connect (MMModem *modem,
gpointer user_data)
{
MMModemHso *self = MM_MODEM_HSO (modem);
- MMModemHsoPrivate *priv = MM_MODEM_HSO_GET_PRIVATE (self);
- MMCallbackInfo *info;
+ MMCallbackInfo *auth_info, *connect_info;
mm_modem_set_state (modem, MM_MODEM_STATE_CONNECTING, MM_MODEM_STATE_REASON_NONE);
- info = mm_callback_info_new (modem, callback, user_data);
-
- mm_hso_modem_authenticate (self, priv->username, priv->password, connect_auth_done, info);
+ 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);
}
/*****************************************************************************/