forked from pool/tigervnc
bbd43011aa
- 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
27 lines
1014 B
Diff
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);
|
|
|