diff options
Diffstat (limited to 'src/mm-broadband-bearer.c')
-rw-r--r-- | src/mm-broadband-bearer.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mm-broadband-bearer.c b/src/mm-broadband-bearer.c index 1188f60a..3a82defa 100644 --- a/src/mm-broadband-bearer.c +++ b/src/mm-broadband-bearer.c @@ -254,7 +254,10 @@ dial_cdma_ready (MMBaseModem *modem, return; } - /* else... Yuhu! */ + /* The ATD command has succeeded, and therefore the TTY is in data mode now. + * Instead of waiting for setting the port as connected later in + * connect_succeeded(), we do it right away so that we stop our polling. */ + mm_port_set_connected (ctx->data, TRUE); /* Keep port open during connection */ ctx->close_data_on_exit = FALSE; @@ -573,6 +576,11 @@ atd_ready (MMBaseModem *modem, return; } + /* The ATD command has succeeded, and therefore the TTY is in data mode now. + * Instead of waiting for setting the port as connected later in + * connect_succeeded(), we do it right away so that we stop our polling. */ + mm_port_set_connected (MM_PORT (ctx->dial_port), TRUE); + g_simple_async_result_set_op_res_gpointer (ctx->result, g_object_ref (ctx->dial_port), (GDestroyNotify)g_object_unref); @@ -1177,7 +1185,8 @@ connect_succeeded (ConnectContext *ctx, ctx->self->priv->port = g_object_ref (mm_bearer_connect_result_peek_data (result)); ctx->self->priv->connection_type = connection_type; - /* Port is connected; update the state */ + /* Port is connected; update the state. For ATD based connections, the port + * may already be set as connected, but no big deal. */ mm_port_set_connected (ctx->self->priv->port, TRUE); /* Set operation result */ |