]> source.dussan.org Git - tigervnc.git/commitdiff
Flush decoder errors on close()
authorPierre Ossman <ossman@cendio.se>
Mon, 7 Nov 2022 12:45:34 +0000 (13:45 +0100)
committerPierre Ossman <ossman@cendio.se>
Mon, 7 Nov 2022 12:45:34 +0000 (13:45 +0100)
We don't want any stray exceptions as we are cleaning up, so handle any
still pending decoder errors by just logging them. We are already
shutting down so there is no need to abort the connection here.

common/rfb/CConnection.cxx

index 675b49d616e1065906e5d477e46ead586915c7a6..396b48b3c0db1a70ab7119fd68c010162983b36a 100644 (file)
@@ -388,6 +388,16 @@ void CConnection::close()
 {
   state_ = RFBSTATE_CLOSING;
 
+  /*
+   * We're already shutting down, so just log any pending decoder
+   * problems
+   */
+  try {
+    decoder.flush();
+  } catch (rdr::Exception& e) {
+    vlog.error("%s", e.str());
+  }
+
   setFramebuffer(NULL);
   delete csecurity;
   csecurity = NULL;