base-bearer: report connection error on network initiated disconnections

By default, fallback to "unknown" mobile equipment error when the
modem gets disconnected by the network and we don't have any way to
know a more detailed reason.
This commit is contained in:
Aleksander Morgado
2021-05-23 01:22:07 +02:00
parent 7e8885d569
commit 43db860c44
9 changed files with 63 additions and 32 deletions
+5 -3
View File
@@ -777,8 +777,9 @@ disconnect_3gpp (MMBroadbandBearer *_self,
/*****************************************************************************/
static void
report_connection_status (MMBaseBearer *bearer,
MMBearerConnectionStatus status)
report_connection_status (MMBaseBearer *bearer,
MMBearerConnectionStatus status,
const GError *connection_error)
{
MMBroadbandBearerHuawei *self = MM_BROADBAND_BEARER_HUAWEI (bearer);
@@ -801,7 +802,8 @@ report_connection_status (MMBaseBearer *bearer,
/* Report disconnected right away */
MM_BASE_BEARER_CLASS (mm_broadband_bearer_huawei_parent_class)->report_connection_status (
bearer,
MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
MM_BEARER_CONNECTION_STATUS_DISCONNECTED,
NULL);
}
/*****************************************************************************/
+4 -2
View File
@@ -700,7 +700,8 @@ dial_3gpp (MMBroadbandBearer *_self,
static void
report_connection_status (MMBaseBearer *_self,
MMBearerConnectionStatus status)
MMBearerConnectionStatus status,
const GError *connection_error)
{
MMBroadbandBearerIcera *self = MM_BROADBAND_BEARER_ICERA (_self);
@@ -729,7 +730,8 @@ report_connection_status (MMBaseBearer *_self,
* disconnected. Make sure we only pass 'DISCONNECTED' to the parent */
MM_BASE_BEARER_CLASS (mm_broadband_bearer_icera_parent_class)->report_connection_status (
_self,
MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
MM_BEARER_CONNECTION_STATUS_DISCONNECTED,
connection_error);
}
}
+4 -2
View File
@@ -799,7 +799,8 @@ disconnect_3gpp (MMBroadbandBearer *_self,
static void
report_connection_status (MMBaseBearer *_self,
MMBearerConnectionStatus status)
MMBearerConnectionStatus status,
const GError *connection_error)
{
MMBroadbandBearerMbm *self = MM_BROADBAND_BEARER_MBM (_self);
@@ -829,7 +830,8 @@ report_connection_status (MMBaseBearer *_self,
* disconnected. Make sure we only pass 'DISCONNECTED' to the parent */
MM_BASE_BEARER_CLASS (mm_broadband_bearer_mbm_parent_class)->report_connection_status (
_self,
MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
MM_BEARER_CONNECTION_STATUS_DISCONNECTED,
NULL);
}
}
+3 -4
View File
@@ -699,7 +699,8 @@ disconnect_3gpp (MMBroadbandBearer *self,
static void
report_connection_status (MMBaseBearer *_self,
MMBearerConnectionStatus status)
MMBearerConnectionStatus status,
const GError *connection_error)
{
MMBroadbandBearerHso *self = MM_BROADBAND_BEARER_HSO (_self);
@@ -719,9 +720,7 @@ report_connection_status (MMBaseBearer *_self,
if (status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED) {
/* If no connection attempt on-going, make sure we mark ourselves as
* disconnected */
MM_BASE_BEARER_CLASS (mm_broadband_bearer_hso_parent_class)->report_connection_status (
_self,
status);
MM_BASE_BEARER_CLASS (mm_broadband_bearer_hso_parent_class)->report_connection_status (_self, status,connection_error);
}
}