ninepconnection: emit disconnected when leaving Connected state
Previously disconnected was only emitted when entering Disconnected state, not when transitioning Connected->RetryWait. This caused Lib9pClient to keep a stale handle when olliesrv restarted, preventing reconnection.
This commit is contained in:
parent
22302ce9f1
commit
b4ae887089
|
|
@ -9,12 +9,16 @@
|
|||
* Disconnected | EvStart | | Connecting | spawnProcess
|
||||
* Connecting | EvOpenMarker | | Connected | emit connected
|
||||
* Connecting | EvExitFail | canRetry | RetryWait | scheduleRetry
|
||||
* Connecting | EvExitFail | !canRetry | Disconnected | emit disconnected
|
||||
* Connecting | EvExitFail | !canRetry | Disconnected |
|
||||
* Connected | EvExitOk | | Connected | scheduleRetry (silent)
|
||||
* Connected | EvExitFail | canRetry | RetryWait | scheduleRetry
|
||||
* Connected | EvExitFail | canRetry | RetryWait | emit disconnected, scheduleRetry
|
||||
* Connected | EvExitFail | !canRetry | Disconnected | emit disconnected
|
||||
* RetryWait | EvRetryTimer | | Connecting | spawnProcess
|
||||
* Any | EvStop | | Disconnected | killProcess, emit disconnected
|
||||
* Any | EvStop | | Disconnected | killProcess, emit disconnected (if was Connected)
|
||||
*
|
||||
* Signals:
|
||||
* - connected: emitted when entering Connected from any other state
|
||||
* - disconnected: emitted when leaving Connected for any other state
|
||||
*/
|
||||
|
||||
NinePConnection::NinePConnection(QObject *parent)
|
||||
|
|
@ -117,7 +121,7 @@ void NinePConnection::enter(State state)
|
|||
|
||||
if (state == Connected && prev != Connected)
|
||||
emit connected();
|
||||
else if (state == Disconnected && prev != Disconnected)
|
||||
else if (prev == Connected && state != Connected)
|
||||
emit disconnected();
|
||||
}
|
||||
|
||||
|
|
|
|||
Reference in New Issue