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

27 lines
1014 B
Diff
Raw 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: common/rdr/FdOutStream.cxx
===================================================================
--- common/rdr/FdOutStream.cxx.orig
+++ common/rdr/FdOutStream.cxx
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
@@ -204,8 +204,12 @@ int FdOutStream::writeWithTimeout(const
#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);