Pierre Ossman [Tue, 29 Sep 2015 13:40:49 +0000 (15:40 +0200)]
Return TcpListener pointers rather than objects
It is easier to control object life time and avoid magical socket
duplication by having a single TcpListener object to pass around.
We have to be more careful about deleting the object though.
Pierre Ossman [Tue, 29 Sep 2015 07:40:20 +0000 (09:40 +0200)]
Add address sanitizer switch
Useful for debugging memory leaks and access violations. It is
not available on Windows though, and there is some problem compiling
ObjectiveC++ with it turned on.
Pierre Ossman [Thu, 24 Sep 2015 14:24:48 +0000 (16:24 +0200)]
Make sure fallback block handler remains enabled
Commit f8e3b34 introduced a regression where the fallback write block
handler would cease working after the first time it was called,
potentially stalling writes.
Pierre Ossman [Wed, 23 Sep 2015 10:18:52 +0000 (12:18 +0200)]
Display partial updates on slow transfers
Normally we only display screen changes once we have the updates for
the entire screen. This may give the impression that the viewer is
hung though. So display the partial data if the update is taking to
long to arrive.
Brian P. Hinz [Sun, 20 Sep 2015 00:47:56 +0000 (20:47 -0400)]
Fixes for X509 CA certificate handling
95f39a5 introduced a regression whereby an exception would be thrown
when a PEM encoded CA certificate file containing one or more blank
lines was read in under Apple Java 6. Additionally, CA certs were
being appended to the ~/.vnc/x509_savedcerts.pem file even if they
were already included in it. Also fixes a possible FileNotFoundException
if the x509_savedcerts.pem file didn't exist.
Pierre Ossman [Mon, 14 Sep 2015 12:35:05 +0000 (14:35 +0200)]
Refuse to start Xvnc if we failed to initialise a screen
Starting Xvnc without having any VNC functionality is pretty much
pointless. So terminate when that happens, making the situation easier
to detect for startup scripts.
Brian P. Hinz [Sun, 13 Sep 2015 14:39:54 +0000 (10:39 -0400)]
Improve handling of x509 authentication
Fixes #193 and also adds automatic certificate saving feature like
the Fltk viewer. Also pulls in CA certificates from all trusted
authorities known to the JRE for the case when the server is using
a certificate from a top-level authority.
Brian P. Hinz [Sat, 12 Sep 2015 20:11:36 +0000 (16:11 -0400)]
Compile legacy Xvnc with relative rpath for portability
Build with rpath link so that Xvnc finds our libGL even if
it's not installed in "/". Also applied dridir and xkbcompdir
patches so that the correct DRI driver gets loaded.
Brian P. Hinz [Thu, 20 Aug 2015 05:20:10 +0000 (01:20 -0400)]
Add multiple monitor spanning feature to java viewer
Adds support for spanning multiple monitors in "Extended" mode
to the Java viewer. Allows for spanning when maximizing in
addition to just full-screen mode. Seems a bit unpredictable on
MS Windows 7 (ie: depends on window placement, which screen is
set as primary, etc.), but this appears to be the behavior of
the OS itself.
Brian P. Hinz [Thu, 20 Aug 2015 04:26:28 +0000 (00:26 -0400)]
Fix desktopSize parameter issue
desktopSize preference was being applied even if the checkbox was
unselected in the dialog is a value had previously been stored in
the preferences file.
Added patches for the following upstream CVEs: 2013-7439,
2015-0255, 2015-1802, 2015-1803, 2015-1804. Also updated the
versions of gnutls, libtasn1, and libjpeg-turbo used to build
static libraries to their latest respective upstream versions.
Added patches for the following upstream CVEs: 2013-7439,
2015-0255, 2015-1802, 2015-1803, 2015-1804. Also updated the
versions of gnutls, libtasn1, and libjpeg-turbo used to build
static libraries to their latest respective upstream versions.
Pierre Ossman [Thu, 30 Jul 2015 13:06:37 +0000 (15:06 +0200)]
Set user/client requested mode as preferred
Desktop environments like to change to the monitor's preferred
mode, especially at login. Lacking one, they pick the highest
resolution they can find. This tends to override what the user
has picked, so try to work around the desktop environments by
setting the preferred mode to what the user has chosen.
Credit goes to Michal Srb who figured out the problem.
The bug fix in b64dbf2 didn't account for the proper request
region in the case of continuous updates. Make sure we use the
proper variable for which region we've sent updates for.
Pierre Ossman [Tue, 9 Jun 2015 14:10:39 +0000 (16:10 +0200)]
Avoid losing updates on partial requests
A request may be for only part of the frame buffer, meaning we cannot
discard all changes just because we've send out an update. There might
still be modified areas remaining that haven't been requested yet.
Pierre Ossman [Tue, 9 Jun 2015 14:09:06 +0000 (16:09 +0200)]
Clean up server rendered cursor logic
Variables were reused a bit too heavily and it was possible to get
the logic at a point where the server would try to render a cursor
where it wasn't needed, and the empty update rect would cause a
crash. Clear things up by introducing some more explicit variables.
Pierre Ossman [Fri, 5 Jun 2015 10:57:02 +0000 (12:57 +0200)]
Change fillRect() to take a buffer instead of a pixel
There has been some confusion if fillRect() should accept a buffer
or a pixel. This can cause misrendering if your data is not in the
native endian order. A buffer makes more sense here though, and
is what most of the callers are already assuming, so change the
API to follow that.
Pierre Ossman [Mon, 4 May 2015 12:46:00 +0000 (14:46 +0200)]
Default to -noreset in Xvnc
We cannot handle a reset properly right now and are forced to terminate
instead. Avoid surprising people with a dying Xvnc by changing the default
to -noreset.
Pierre Ossman [Thu, 30 Apr 2015 07:28:37 +0000 (09:28 +0200)]
Set libdir in generated .la files
This is needed in order to get libtool to treat them as normal
libraries and not "convenience libraries". The latter are linked
with --whole-archive, which pulls a lot of unnecessary stuff into
Xvnc and libvnc.so.
Pierre Ossman [Wed, 22 Apr 2015 10:28:50 +0000 (12:28 +0200)]
Revert "Commit changes after running "make translations_update"."
This reverts commit a9cb97037e098dd6c812f4c063937c8777c62dce.
We shouldn't automatically update the .po files as they are
controlled by the translation project.
Pierre Ossman [Tue, 7 Apr 2015 12:58:45 +0000 (14:58 +0200)]
Fix about text encoding (partial revert of dc96cb4d)
It was actually a feature to translate the about string multiple
times as we may need different character encodings for it. We
still want a better approach that allows the compiler to analyse
the format string though so it isn't just a simple revert.