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(), ...@@ -276,8 +276,10 @@ class QuasselService : DaggerLifecycleService(),
.throttleFirst(1, TimeUnit.SECONDS) .throttleFirst(1, TimeUnit.SECONDS)
.toLiveData() .toLiveData()
.observe(this, Observer { .observe(this, Observer {
handlerService.backend {
if (wasEverConnected && !sessionManager.hasErrored) if (wasEverConnected && !sessionManager.hasErrored)
sessionManager.reconnect(true) sessionManager.reconnect(true)
}
}) })
sessionManager.state sessionManager.state
...@@ -287,12 +289,14 @@ class QuasselService : DaggerLifecycleService(), ...@@ -287,12 +289,14 @@ class QuasselService : DaggerLifecycleService(),
.toLiveData() .toLiveData()
.observe( .observe(
this, Observer { this, Observer {
handlerService.backend {
if (it == ConnectionState.DISCONNECTED || it == ConnectionState.CLOSED) { if (it == ConnectionState.DISCONNECTED || it == ConnectionState.CLOSED) {
if (wasEverConnected && !sessionManager.hasErrored) if (wasEverConnected && !sessionManager.hasErrored)
sessionManager.reconnect() sessionManager.reconnect()
} else { } else {
wasEverConnected = true wasEverConnected = true
} }
}
}) })
sharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE) { sharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE) {
......
...@@ -127,10 +127,11 @@ class CoreConnection( ...@@ -127,10 +127,11 @@ class CoreConnection(
override fun close() { override fun close() {
try { try {
setState(ConnectionState.CLOSED) setState(ConnectionState.CLOSED)
channel?.flush()
channel?.close()
interrupt() interrupt()
} catch (e: Throwable) { } catch (e: Throwable) {
log(WARN, log(WARN, TAG, "Error encountered while closing connection", e)
TAG, "Error encountered while closing connection", e)
} }
} }
...@@ -200,14 +201,13 @@ class CoreConnection( ...@@ -200,14 +201,13 @@ class CoreConnection(
} }
} }
} }
channel?.close()
} catch (e: QuasselSecurityException) { } catch (e: QuasselSecurityException) {
close() close()
securityExceptionCallback(e) securityExceptionCallback(e)
} catch (e: Throwable) { } catch (e: Throwable) {
log(WARN, log(WARN, TAG, "Error encountered in connection", e)
TAG, "Error encountered in connection", e) log(WARN, TAG, "Last sent message: ${MessageRunnable.lastSent.get()}")
log(WARN,
TAG, "Last sent message: ${MessageRunnable.lastSent.get()}")
close() close()
} }
} }
......
...@@ -186,6 +186,7 @@ class WrappedChannel( ...@@ -186,6 +186,7 @@ class WrappedChannel(
rawIn = null rawIn = null
rawOut?.close() rawOut?.close()
rawOut = null 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