Session hangs if network interrupted without Android noticing
Steps
- Connect device to WiFi network/etc where there's an upstream connection point you can detach from the Internet
- Connect to core via this network
- Disconnect upstream network while keeping device connected downstream
- E.g. disconnect router WAN port without resetting router's WiFi connection
-
Before Android notices, reconnect upstream network
- E.g. reconnect router WAN port at around a minute or so
- This might relate to TCP expiration or some other level of session below Quassel protocol timing out
- Try to interact with QuasselDroid, wait
Expected
QuasselDroid eventually notices the session no longer functions, whether through some form of connection timeout or other check.
Actual
The interrupted session appears to be kept indefinitely (at least 20 minutes, beyond the core-side session timeout), not reconnecting unless Android marks the network as changed. QuasselDroid continues to claim it's connected, nothing changes.
Additional
Most other apps seem to handle this fine as they don't rely on long-running connections, which seems like what Android's connection manager assumes.
I don't know if this is reasonably solvable.
This seems unrelated to the automatic reconnect bug with WiFi/modem handoff, but may be worthwhile considering at the same time.