Skip to content
Snippets Groups Projects
Commit 06b2ea1e authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Close connection cleanly

parent 6d137dae
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -276,8 +276,10 @@ class QuasselService : DaggerLifecycleService(),
.throttleFirst(1, TimeUnit.SECONDS)
.toLiveData()
.observe(this, Observer {
handlerService.backend {
if (wasEverConnected && !sessionManager.hasErrored)
sessionManager.reconnect(true)
}
})
sessionManager.state
......@@ -287,12 +289,14 @@ class QuasselService : DaggerLifecycleService(),
.toLiveData()
.observe(
this, Observer {
handlerService.backend {
if (it == ConnectionState.DISCONNECTED || it == ConnectionState.CLOSED) {
if (wasEverConnected && !sessionManager.hasErrored)
sessionManager.reconnect()
} else {
wasEverConnected = true
}
}
})
sharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE) {
......
......@@ -127,10 +127,11 @@ class CoreConnection(
override fun close() {
try {
setState(ConnectionState.CLOSED)
channel?.flush()
channel?.close()
interrupt()
} catch (e: Throwable) {
log(WARN,
TAG, "Error encountered while closing connection", e)
log(WARN, TAG, "Error encountered while closing connection", e)
}
}
......@@ -200,14 +201,13 @@ class CoreConnection(
}
}
}
channel?.close()
} catch (e: QuasselSecurityException) {
close()
securityExceptionCallback(e)
} catch (e: Throwable) {
log(WARN,
TAG, "Error encountered in connection", e)
log(WARN,
TAG, "Last sent message: ${MessageRunnable.lastSent.get()}")
log(WARN, TAG, "Error encountered in connection", e)
log(WARN, TAG, "Last sent message: ${MessageRunnable.lastSent.get()}")
close()
}
}
......
......@@ -186,6 +186,7 @@ class WrappedChannel(
rawIn = null
rawOut?.close()
rawOut = null
socket.close()
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment