tigervnc/u_tigervnc-Ignore-epipe-on-write.patch
Joan Torres 543e26d9be - Update to tigervnc 1.14.1
* Default installation of native viewer can once again handle VncAuth
  * Graphic acceleration now can now be disabled through the vncserver config file the same way as other features
  * Command vncpasswd can again correctly update passwords
  * Native viewer once again consider passwd file that contain more than one password valid
  * Native viewer can once again connect to RealVNC servers
  * Users of x0vncserver should no longer experience the mouse cursor moving to the upper left corner
  * H264 encoding no longer causes crashing
- Removed patches (no longer needed):
  * u_tigervnc-Change-button-layout-in-ServerDialog.patch
- Refreshed patches:
  * n_tigervnc-Date-time.patch
  * n_tigervnc-Dont-sign-java-client.patch
  * n_tigervnc-reproducible-jar-mtime.patch
  * u_tigervnc-Add-autoaccept-parameter.patch
  * u_tigervnc-Build-libXvnc-as-separate-library.patch
  * u_tigervnc-Ignore-epipe-on-write.patch
- Fix path on vncviewer desktop file. Use %use_update_alternative

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/tigervnc?expand=0&rev=268
2024-11-04 12:29:12 +00:00

27 lines
1.1 KiB
Diff

Author: Michal Srb <msrb@suse.com>
Subject: Ignore EPIPE on write.
Patch-Mainline: To be upstreamed
References: bnc#864676
If the VNC server closes connection after our last read and before this write, we will report error message about EPIPE.
This situation is no error, however, we should quit normally same as when we find out that connection was closed during read.
Index: tigervnc-1.13.1/common/rdr/FdOutStream.cxx
===================================================================
--- tigervnc-1.13.1.orig/common/rdr/FdOutStream.cxx
+++ tigervnc-1.13.1/common/rdr/FdOutStream.cxx
@@ -133,8 +133,12 @@ size_t FdOutStream::writeFd(const uint8_t* data, size_t length)
#endif
} while (n < 0 && (errorNumber == EINTR));
- if (n < 0)
- throw SystemException("write", errorNumber);
+ if (n < 0) {
+ if (errorNumber == EPIPE)
+ n = length; // Ignore EPIPE and fake successfull write, it doesn't matter that we are writing to closed socket, we will find out once we try to read from it.
+ else
+ throw SystemException("write", errorNumber);
+ }
gettimeofday(&lastWrite, NULL);