| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
The system shutdown() function doesn't drop buffered data, so neither
should we.
We had one fix in place, but that didn't cover all cases. Move this
handling to all socket like classes we have.
|
|
|
|
| |
We can make do with forward declarations for these classes.
|
|
|
|
|
| |
A set restore point needs to be used or cleared. Release builds will let
this slide, but debug builds will kill the connection.
|
|
|
|
|
|
|
| |
This got completely broken in baca73d0 where the templated method got
incorrectly called instead of the wrapper/multiplexer. It seems to have
been harmless on most systems, but caused crashes on CPUs with strict
memory alignment requirements.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
This is a general thing so move it in to the core library instead,
letting vncviewer focus on just translation of system events to VNC
ones.
|
| |
| |
| |
| |
| | |
This is required for the built in exceptions, so let's do the same to
avoid surprises.
|
| |
| |
| |
| |
| |
| | |
That type is not guaranteed to preserve anything useful at all. Instead,
try to either preserve a more specific type, or use std::runtime_error
which at least has a guaranteed message.
|
| | |
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | | |
The reason for this is to keep a consistency through out the project.
|
| | |
| | |
| | |
| | | |
The reason for this is to keep a consistency through out the project.
|
| | |
| | |
| | |
| | | |
The reason for this is to keep a consistency through out the project.
|
| | |
| | |
| | |
| | |
| | | |
The issue was masked by it getting included by the TLS headers. But if
GnuTLS was disabled, then this file would fail to build.
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit implements the pseudo-encoding ExtendedMouseButtons which
makes it possible to use the back/forward mouse buttons.
This commit contains work originally done by
PixelSmith <manny33@frontbuffer.com>.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit adds support for the pseudo-encoding ExtendedMouseButtons in
Xvnc and x0vncserver, which makes it possible to use to use the
back/forward mouse buttons.
This commit contains work originally done by
PixelSmith <manny33@frontbuffer.com>.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This makes things more consistent since we mix with the standard library
exceptions so often.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
There is no point to having our own generic exception class. Let's use
the one provided by the standard C++ library.
|
| | | |
| | | |
| | | |
| | | | |
Make it easier to identify communication issues.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Use the more specific already included exception classes for common
errors to keep things more understandable.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Implicitly gives us the correct exceptions on errors instead of us
having to check and throw ourselves.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Make sure our exceptions are part of the standard exception class
hierarchy.
|
| | | |
| | | |
| | | |
| | | | |
Harmonize with the standard C++ exceptions.
|
| |/ /
|/| |
| | |
| | |
| | | |
In preparation for using the built in C++ exception classes, which do
not accept a format string.
|
| |/
|/|
| |
| |
| | |
Otherwise the compiler will complain about a defined but unused static
function.
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Windows has (at least) two error namespaces, both errno and
GetLastResult(). These overlap, so it is important we keep track of
which one we are dealing with.
To make things extra problematic, the BSD socket API normally uses
errno, but on Windows it has been mapped in to the GetLastResult()
namespace.
Try to keep better control of this by using separate classes for the
namespaces.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Only the client that currently has buttons pressed should actually send
a release event as the client might not be currently in control of the
pointer state. This is most clearly seen in a client that hasn't event
authenticated properly yet.
Approximate this from the server by using the last known server cursor
position. It should hopefully not differ much from the last client
provided position.
Follow-up to 986280b382d57ef4f68d2d4afb13b26772e5acb0.
|
|
|
|
|
| |
Prefer this exception for failures involving errno as it gives a better
error description.
|
|
|
|
|
| |
These functions return a GnuTLS status, so we should use the correct
exception for that so we get the proper error messages.
|
|
|
|
|
| |
This is the user actively rejecting the connection, and should be
signalled as such for correct behaviour.
|
| |
|
|
|
|
|
|
|
|
| |
There were more unclear usage of this exception class, and since nothing
catches it it is very unclear what the purpose is. Go ahead and just
remove it.
Follow-up to bcaaea7.
|
|
|
|
|
|
| |
Cursor data has a depth of 32 bits and hence cannot use CPIXELs.
This is a regression from baca73d.
|
|
|
|
|
| |
Problems with the original code: A process can only establish one connection.
After modification, multiple connections can be supported.
|
|
|
|
|
|
|
|
|
|
|
| |
sws_getCachedContext will set a default sampling method if 0 is passed
to the flags argument. This means that when it is called again, the
flags argument will not match the flags in the context, so a new one
will be allocated every time.
To get around this problem, we assign an explicit sampling method, one
that also happens to be more efficient and just as good for this
use-case as the default one, which is bicubic interpolation.
|
|
|
|
|
| |
The scaler is now informed of the colour space encoded into the stream
so that it may do the proper conversion.
|
|\ |
|
| |
| |
| |
| | |
This fixes a memory leak
|
| |
| |
| |
| |
| |
| |
| |
| | |
This ensures that the buffer is allocated with the correct alignment and
padding for use with sws_scale.
This fixes out-of-bounds writes which would in some cases cause
segmentation faults and/or heap corruption.
|
| |
| |
| |
| |
| |
| | |
The underlying issue requiring this hack was fixed ages ago.
Unfortunately, the fixed GnuTLS doesn't consider static linking. So we
need to add a new hack that permits that.
|
| |
| |
| |
| |
| | |
Try to be more clear about what things are external to the current
context, and what aren't.
|
| |
| |
| |
| |
| | |
The usage of this is unclear as it is never caught. Use the general
exception class, to stay consistent with all other protocol handling.
|
| |
| |
| |
| |
| | |
This was made obsolete in dd45b44 when we extended the serverInit()
callback.
|
| |
| |
| |
| |
| | |
This method is no longer blocking, so the description needed to be
adjusted.
|
| |
| |
| |
| | |
Let's try to mimic a real event as much as possible to avoid bugs.
|
| |
| |
| |
| |
| | |
This is a very limited bit field, so use an 8 bit type to clearly show
how many bits are available.
|