SHA256
1
0
forked from pool/tigervnc
tigervnc/u_tigervnc-Ignore-epipe-on-write.patch

27 lines
1.0 KiB
Diff
Raw Permalink Normal View History

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
Accepting request 955605 from home:jtorres:branches:X11:XOrg - Update to tigervnc 1.12.0 * The native viewer now supports full screen over a subset of monitors (e.g. 2 out of 3), and reacts properly to monitors being added or removed * Recent server history in the native viewer * The native viewer now has an option to reconnect if the connection is dropped * Translations are now enabled on Windows and macOS for the native viewer * The native viewer now respects the system security policy * Better handling of accented keys in the Java viewer * The Unix servers can now listen to both a Unix socket and a TCP port at the same time * The network code in both the servers and the native viewer has been restructured to give a more responsive experience * The vncserver service now correctly handles settings set to "0" * Fixed the clipboard Unicode handling in both the native viewer and the servers * Support for pointer "warping" in Xvnc and the native viewer, enabling e.g. FPS games - Update to tigervnc 1.11.0 * A security issue has been fixed in how the viewers handle TLS certificate exceptions * vncserver has gotten a major redesign to be compatible with modern distributions * The native viewer now has touch gestures to handle certain mouse actions (e.g. scroll wheel) * Middle mouse button emulation in the native viewer, for devices with only two mouse buttons * The Java viewer now supports Java 9+, but also now requires Java 8+ * Support for alpha cursors in the Java viewer (a feature already supported in the native viewer) * The password and username can now be specified via the environment for the native viewer * Support for building Xvnc/libvnc.so with Xorg 1.20.7+ and deprecate support for Xorg older than 1.16 * The official builds have been fixed to work on the upcoming macOS 11 * The Windows server (WinVNC) is now packaged separately as it is unmaintained and buggy - Removed patches (included in 1.12.0): * U_viewer-reset-ctrl-alt-to-menu-state-on-focus.patch * tigervnc-fix-saving-of-bad-server-certs.patch * u_xorg-server-1.20.7-ddxInputThreadInit.patch * U_0001-Properly-store-certificate-exceptions.patch * U_0002-Properly-store-certificate-exceptions-in-Java-viewer.patch * tigervnc-FIPS-use-RFC7919.patch OBS-URL: https://build.opensuse.org/request/show/955605 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/tigervnc?expand=0&rev=221
2022-02-17 11:42:51 +01:00
@@ -128,8 +128,12 @@ size_t FdOutStream::writeFd(const void*
Accepting request 627036 from home:michalsrb:branches:X11:XOrg - Update to tigervnc 1.9.0 * Alternative, "raw" keyboard mode in the native client and all servers * CapsLock/NumLock/ScrollLock synchronisation in the native client and all servers * Automatic "repair" of JPEG artefacts on screen in all servers * Support for UNIX sockets in the native client and in the UNIX servers * Both clients now warn when sending the password over a possibly insecure channel * Performance improvements in the Java client * The Java client now requires Java 7 * Improved high latency handling in all servers * Slightly better keyboard handling in x0vncserver * x0vncserver now supports cursors and screen resize * Xorg 1.20 can now be used as a base for Xvnc/libvnc.so - Removed patches (included in 1.9.0): * u_tigervnc-show-unencrypted-warning.patch * U_allow_multiple_certs_with_same_dn_in_saved_certs_file.patch * U_handle_certificate_verification_for_saved_certs_correctly.patch * u_Unset-pixel-buffer-when-x0vncserver-client-disconnect.patch * u_add-support-for-X-server-1.20.0.patch * U_vncviewer-Fix-fullscreen-scrolling.patch * U_vncviewer-Fix-scrollbar-visibility.patch - Removed patches (no longer needed): * tigervnc-1.8.0-nowindows.patch - Refreshed patches: * n_tigervnc-date-time.patch * tigervnc-clean-pressed-key-on-exit.patch * u_tigervnc-add-autoaccept-parameter.patch * u_tigervnc-ignore-epipe-on-write.patch - Added patches: * n_correct_path_in_desktop_file.patch - Fixed typo in 10-libvnc.conf OBS-URL: https://build.opensuse.org/request/show/627036 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/tigervnc?expand=0&rev=145
2018-08-02 11:24:03 +02:00
#endif
} while (n < 0 && (errno == EINTR));
- if (n < 0)
- throw SystemException("write", errno);
+ if (n < 0) {
+ if(errno == 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", errno);
+ }
gettimeofday(&lastWrite, NULL);