tigervnc/u_tigervnc-ignore-epipe-on-write.patch
Michal Srb bbd43011aa 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 09:24:03 +00:00

27 lines
1014 B
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: common/rdr/FdOutStream.cxx
===================================================================
--- common/rdr/FdOutStream.cxx.orig
+++ common/rdr/FdOutStream.cxx
@@ -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);