aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2021-04-25 10:57:22 +0200
committerBjørn Mork <bjorn@mork.no>2021-04-25 11:05:55 +0200
commit87a8f7ac34d24044dd950991640d76a894422fcc (patch)
tree407b5698c1502d7edc80f8ef6dd0a36a1cdf1847
parent3ee361882f52c0951818faa0cc98af9da7eaf562 (diff)
connect step debugging
Signed-off-by: Bjørn Mork <bjorn@mork.no>
-rw-r--r--src/mm-bearer-qmi.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
index e11e4851..0734e9b1 100644
--- a/src/mm-bearer-qmi.c
+++ b/src/mm-bearer-qmi.c
@@ -1483,6 +1483,34 @@ qmi_port_open_ready (MMPortQmi *qmi,
connect_context_step (task);
}
+static const gchar *step2str(ConnectStep step)
+{
+ switch (step) {
+ case CONNECT_STEP_FIRST: return "CONNECT_STEP_FIRST";
+ case CONNECT_STEP_OPEN_QMI_PORT: return "CONNECT_STEP_OPEN_QMI_PORT";
+ case CONNECT_STEP_SETUP_DATA_FORMAT: return "CONNECT_STEP_SETUP_DATA_FORMAT";
+ case CONNECT_STEP_SETUP_LINK: return "CONNECT_STEP_SETUP_LINK";
+ case CONNECT_STEP_SETUP_LINK_MASTER_UP: return "CONNECT_STEP_SETUP_LINK_MASTER_UP";
+ case CONNECT_STEP_IP_METHOD: return "CONNECT_STEP_IP_METHOD";
+ case CONNECT_STEP_IPV4: return "CONNECT_STEP_IPV4";
+ case CONNECT_STEP_WDS_CLIENT_IPV4: return "CONNECT_STEP_WDS_CLIENT_IPV4";
+ case CONNECT_STEP_BIND_DATA_PORT_IPV4: return "CONNECT_STEP_BIND_DATA_PORT_IPV4";
+ case CONNECT_STEP_IP_FAMILY_IPV4: return "CONNECT_STEP_IP_FAMILY_IPV4";
+ case CONNECT_STEP_ENABLE_INDICATIONS_IPV4: return "CONNECT_STEP_ENABLE_INDICATIONS_IPV4";
+ case CONNECT_STEP_START_NETWORK_IPV4: return "CONNECT_STEP_START_NETWORK_IPV4";
+ case CONNECT_STEP_GET_CURRENT_SETTINGS_IPV4: return "CONNECT_STEP_GET_CURRENT_SETTINGS_IPV4";
+ case CONNECT_STEP_IPV6: return "CONNECT_STEP_IPV6";
+ case CONNECT_STEP_WDS_CLIENT_IPV6: return "CONNECT_STEP_WDS_CLIENT_IPV6";
+ case CONNECT_STEP_BIND_DATA_PORT_IPV6: return "CONNECT_STEP_BIND_DATA_PORT_IPV6";
+ case CONNECT_STEP_IP_FAMILY_IPV6: return "CONNECT_STEP_IP_FAMILY_IPV6";
+ case CONNECT_STEP_ENABLE_INDICATIONS_IPV6: return "CONNECT_STEP_ENABLE_INDICATIONS_IPV6";
+ case CONNECT_STEP_START_NETWORK_IPV6: return "CONNECT_STEP_START_NETWORK_IPV6";
+ case CONNECT_STEP_GET_CURRENT_SETTINGS_IPV6: return "CONNECT_STEP_GET_CURRENT_SETTINGS_IPV6";
+ case CONNECT_STEP_LAST: return "CONNECT_STEP_LAST";
+ };
+ return "foo";
+};
+
static void
connect_context_step (GTask *task)
{
@@ -1513,11 +1541,15 @@ connect_context_step (GTask *task)
ctx = g_task_get_task_data (task);
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
+
switch (ctx->step) {
case CONNECT_STEP_FIRST:
+
g_assert (ctx->ipv4 || ctx->ipv6);
ctx->step++;
/* fall through */
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
case CONNECT_STEP_OPEN_QMI_PORT:
/* If we're explicitly opening the port (e.g. using a different cdc-wdm
@@ -1534,6 +1566,7 @@ connect_context_step (GTask *task)
}
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_SETUP_DATA_FORMAT: {
@@ -1572,6 +1605,7 @@ connect_context_step (GTask *task)
}
ctx->step++;
/* fall through */
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
case CONNECT_STEP_SETUP_LINK_MASTER_UP:
/* if the connection is done through a new link, we need to ifup the master interface */
@@ -1587,6 +1621,7 @@ connect_context_step (GTask *task)
}
ctx->step++;
/* fall through */
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
case CONNECT_STEP_IP_METHOD:
/* Once the QMI port is open, we decide the IP method we're going
@@ -1600,6 +1635,7 @@ connect_context_step (GTask *task)
mm_obj_dbg (self, "defaulting to use %s IP method", mm_bearer_ip_method_get_string (ctx->ip_method));
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_IPV4:
@@ -1615,6 +1651,7 @@ connect_context_step (GTask *task)
ctx->running_ipv4 = TRUE;
ctx->running_ipv6 = FALSE;
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_WDS_CLIENT_IPV4: {
@@ -1636,6 +1673,7 @@ connect_context_step (GTask *task)
ctx->client_ipv4 = QMI_CLIENT_WDS (client);
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
} /* fall through */
case CONNECT_STEP_BIND_DATA_PORT_IPV4:
@@ -1678,6 +1716,7 @@ connect_context_step (GTask *task)
}
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_IP_FAMILY_IPV4:
@@ -1701,6 +1740,7 @@ connect_context_step (GTask *task)
}
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_ENABLE_INDICATIONS_IPV4:
@@ -1739,6 +1779,7 @@ connect_context_step (GTask *task)
}
ctx->step++;
/* fall through */
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
case CONNECT_STEP_IPV6:
/* If no IPv6 setup needed, jump to last */
@@ -1753,6 +1794,7 @@ connect_context_step (GTask *task)
ctx->running_ipv4 = FALSE;
ctx->running_ipv6 = TRUE;
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_WDS_CLIENT_IPV6: {
@@ -1774,6 +1816,7 @@ connect_context_step (GTask *task)
ctx->client_ipv6 = QMI_CLIENT_WDS (client);
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
} /* fall through */
case CONNECT_STEP_BIND_DATA_PORT_IPV6:
@@ -1816,6 +1859,7 @@ connect_context_step (GTask *task)
}
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_IP_FAMILY_IPV6: {
@@ -1871,6 +1915,7 @@ connect_context_step (GTask *task)
return;
}
ctx->step++;
+ mm_obj_dbg (self, "running '%s'", step2str(ctx->step));
/* fall through */
case CONNECT_STEP_LAST: {
@@ -2070,6 +2115,7 @@ _connect (MMBaseBearer *_self,
ctx->password = g_strdup (mm_bearer_properties_get_password (properties));
ip_family = mm_bearer_properties_get_ip_type (properties);
+ mm_obj_dbg (self, "ip_family from properties = '%s'", mm_bearer_ip_family_build_string_from_mask (ip_family));
if (mm_3gpp_normalize_ip_family (&ip_family)) {
mm_obj_dbg (self, "setting ctx->no_ip_family_preference = TRUE, ip_family = '%s'", mm_bearer_ip_family_build_string_from_mask (ip_family));
ctx->no_ip_family_preference = TRUE;