aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-bearer-qmi.c46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
index e31f7381..8f9568d7 100644
--- a/src/mm-bearer-qmi.c
+++ b/src/mm-bearer-qmi.c
@@ -690,28 +690,32 @@ connect_context_step (ConnectContext *ctx)
return;
}
- case CONNECT_STEP_GET_CURRENT_SETTINGS: {
- QmiMessageWdsGetCurrentSettingsInput *input;
- QmiClientWds *client;
+ case CONNECT_STEP_GET_CURRENT_SETTINGS:
+ /* If one of IPv4 or IPv6 succeeds, get IP configuration */
+ if (ctx->packet_data_handle_ipv4 || ctx->packet_data_handle_ipv6) {
+ QmiMessageWdsGetCurrentSettingsInput *input;
+ QmiClientWds *client;
- if (ctx->running_ipv4)
- client = ctx->client_ipv4;
- else if (ctx->running_ipv6)
- client = ctx->client_ipv6;
- else
- g_assert_not_reached ();
-
- mm_dbg ("Getting IP configuration...");
- input = build_get_current_settings_input (ctx);
- qmi_client_wds_get_current_settings (client,
- input,
- 45,
- ctx->cancellable,
- (GAsyncReadyCallback)get_current_settings_ready,
- ctx);
- qmi_message_wds_get_current_settings_input_unref (input);
- return;
- }
+ if (ctx->running_ipv4)
+ client = ctx->client_ipv4;
+ else if (ctx->running_ipv6)
+ client = ctx->client_ipv6;
+ else
+ g_assert_not_reached ();
+
+ mm_dbg ("Getting IP configuration...");
+ input = build_get_current_settings_input (ctx);
+ qmi_client_wds_get_current_settings (client,
+ input,
+ 45,
+ ctx->cancellable,
+ (GAsyncReadyCallback)get_current_settings_ready,
+ ctx);
+ qmi_message_wds_get_current_settings_input_unref (input);
+ return;
+ }
+ /* Just fall down */
+ ctx->step++;
case CONNECT_STEP_LAST:
/* If one of IPv4 or IPv6 succeeds, we're connected */