bearer: notify final disconnect status using mm_bearer_report_connection_status
Some MMBearer methods to disconnect the bearer assume that the bearer is disconnected even if the operation fails in a subclass. This leaves MMBearer and MMBroadbandBearer states out of sync. This patch notifies the bearer object of the final disconnection using mm_bearer_report_connection_status. This gives the subclasses a chance to update their state even when the disconnection attempt fails.
This commit is contained in:

committed by
Aleksander Morgado

parent
1b3114a0f9
commit
3c6428fa58
@@ -441,7 +441,12 @@ disconnect_after_cancel_ready (MMBearer *self,
|
||||
else
|
||||
mm_dbg ("Disconnected bearer '%s'", self->priv->path);
|
||||
|
||||
bearer_update_status (self, MM_BEARER_STATUS_DISCONNECTED);
|
||||
/* Report disconnection to the bearer object using class method
|
||||
* mm_bearer_report_connection_status. This gives subclass implementations a
|
||||
* chance to correctly update their own connection state, in case this base
|
||||
* class ignores a failed disconnection attempt.
|
||||
*/
|
||||
mm_bearer_report_connection_status (self, MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -945,7 +950,12 @@ disconnect_force_ready (MMBearer *self,
|
||||
else
|
||||
mm_dbg ("Disconnected bearer '%s'", self->priv->path);
|
||||
|
||||
bearer_update_status (self, MM_BEARER_STATUS_DISCONNECTED);
|
||||
/* Report disconnection to the bearer object using class method
|
||||
* mm_bearer_report_connection_status. This gives subclass implementations a
|
||||
* chance to correctly update their own connection state, in case this base
|
||||
* class ignores a failed disconnection attempt.
|
||||
*/
|
||||
mm_bearer_report_connection_status (self, MM_BEARER_CONNECTION_STATUS_DISCONNECTED);
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user