diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2017-03-24 15:03:08 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2017-03-24 21:40:12 +0100 |
commit | dd1e281e82726bcf3349a776da53c4158b088724 (patch) | |
tree | 4329db2cd80b9f3bc27da2b602adda494163a447 /src | |
parent | bc4cbbe6cfda7b884084d888cf271759816e931f (diff) |
broadband-bearer: set TTY as connected as soon as ATD replies
When the connection request is done via ATD, flag the port as
connected as soon as the successful response is received, so that we
remove our polling on the device right away.
https://bugs.freedesktop.org/show_bug.cgi?id=99541
Diffstat (limited to 'src')
-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 */ |