| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
https://github.com/adamhalim/tigervnc-suite
|
| |
| |
| |
| |
| |
| | |
This change makes the ZRLEEncoder respect a client's desired
compressionLevel. The ZlibLevel option is marked deprecated and removed
from the manpages.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We user the real, not the effective user ID, to check if the user is
allowed to log in with the "Plain" security types. Otherwise it would be
necessary to log in as root when Xvnc is installed with the set-user-id
bit on.
Signed-off-by: Carlos Santos <casantos@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This permits to enable PAM for the effective user of the Xvnc process by
adding this to ~/.vnc/config or /etc/tigervnc/vncserver-config-defaults:
SecurityTypes=TLSPlain
PlainUsers=%u
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2233204
Signed-off-by: Carlos Santos <casantos@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Don't assume a lack of TCP listeners means the server will be
unreachable. There might be other methods of access, so let the higher
levels do that sanity check instead.
|
|/
|
|
| |
This will not do the correct thing for Unix sockets.
|
|
|
|
| |
Make sure we can actually build without XRandR libraries.
|
|
|
|
| |
Make sure we can actually build without XFixes libraries.
|
|
|
|
| |
Make sure we can actually build without XTest libraries.
|
|
|
|
| |
The need for these must have got lost somewhere in the type cleanup.
|
|
|
|
|
| |
It is more specific, and it properly sets up propagation when include
directories also need to be used further down a dependency chain.
|
|\ |
|
| |
| |
| |
| | |
It doesn't use any exceptions, so stop including the header for it.
|
| |
| |
| |
| |
| | |
Let's use a more common type instead of something homegrown. Should be
more familiar to new developers.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This mimics how some system functions (like inet_ntop()) work, and
avoids complexity around ownership of the returned string buffer.
The downside is that the string must be consumed directly as it will be
overwritten on the next call, but that is not an issue with the current
usage.
|
| |
| |
| |
| |
| | |
We don't need to make extra copies of the string in most cases, so let's
simplify the code and access the string directly when we can.
|
| |
| |
| |
| |
| | |
Avoid having our own custom stuff and instead use the modern, standard
types, for familiarity.
|
|/
|
|
|
| |
Make sure we don't send a bogus request to the X server in the (common)
case that we don't actually have anything to restore.
|
|
|
|
|
| |
These types caused an incorrect signed/unsigned behaviour, so let's make
sure we use the appropriate type.
|
|
|
|
|
| |
This allows us to separate accidentally unused, from explicitly unused
parameters, which allows us to turn on such checks in the compiler.
|
|
|
|
|
| |
This makes sure the compiler doesn't complain about problems in those
files.
|
|\ \
| | |
| | |
| | | |
https://github.com/grulja/tigervnc
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We have to check whether we update cursor position/shape only in case
the cursor is on our display, otherwise in zaphod mode, ie. when having
two instances of x0vncserver on screens :0.0 and :0.1 we would be having
the cursor duplicated and actually not funcional (aka ghost cursor) as
it would be actually not present. We also additionally watch EnterNotify
and LeaveNotify events in order to show/hide cursor accordingly.
Change made with help from Olivier Fourdan <ofourdan@redhat.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
We might often fail to find a matching X11 keycode when the client has
a different keyboard layout and end up with no key event. To avoid a
failure we add it as a new keysym/keycode pair so the next time a keysym
from the client that is unknown to the server is send, we will find a
match and proceed with key event. This is same behavior used in Xvnc or
x11vnc, although Xvnc has more advanced mapping from keysym to keycode.
|
| |
| |
| |
| |
| |
| | |
These require a key to have been set up on the server beforehand, so
they do not give a good default experience as clients will be unable to
connect.
|
| |
| |
| |
| |
| | |
The order is important in the servers, so make sure the man pages follow
the code properly.
|
|/ |
|
|
|
|
|
|
| |
Avoid duplication, and add logging for some more error conditions so
it's possible to see in the logs why a resize has failed or produced
unexpected results.
|
|
|
|
|
|
| |
The generally recommended way is to include it from source files, not
headers. We had a mix of both. Let's try to be consistent and follow the
recommended way.
|
| |
|
|\ |
|
| | |
|
|/
|
|
|
|
| |
Some operating systems such as FreeBSD don't define a HOST_NAME_MAX
macro. The portable approach to determine the real host name limit is
calling sysconf(_SC_HOST_NAME_MAX) so do that instead.
|
|
|
|
|
|
| |
We miscalculated the screen layout if the geometry had an offset as we
adjusted the real screen layout to account for the offset, but compared
it to the unadjusted geometry.
|
|
|
|
|
| |
Is a lot more useful default than the previous "x11", or "x0vncserver".
At the same time give x0vncserver a parameter to change the name.
|
|
|
|
|
| |
Better to just hide these parameters rather than stating that they are
unused in the man page.
|
|
|
|
|
|
| |
Trying to dynamically track the DPI did not really work as we'd
start accumulating errors and eventually the DPI would start to
drift. Instead maintain a fixed, sensible DPI at all times.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds support for the VMware Mouse Position
pseudo-encoding[1], which is used to notify VNC clients when X11 clients
call `XWarpPointer()`[2]. This function is called by SDL (and other
similar libraries) when they detect that the server does not support
native relative motion, like some RFB clients.
With this, RFB clients can choose to adjust the local cursor position
under certain circumstances to match what the server has set. For
instance, if pointer lock has been enabled on the client's machine and
the cursor is not being drawn locally, the local position of the cursor
is irrelevant, so the RFB client can use what the server sends as the
canonical absolute position of the cursor. This ultimately enables the
possibility of games (especially FPS games) to behave how users expect
(if the clients implement the corresponding change).
Part of: #619
1: https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#vmware-cursor-position-pseudo-encoding
2: https://tronche.com/gui/x/xlib/input/XWarpPointer.html
3: https://hg.libsdl.org/SDL/file/28e3b60e2131/src/events/SDL_mouse.c#l804
|
|
|
|
| |
Setting `rfbport` to `-1` disables TCP port listening.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Major restructuring of how streams work. Neither input nor output
streams are now blocking. This avoids stalling the rest of the client or
server when a peer is slow or unresponsive.
Note that this puts an extra burden on users of streams to make sure
they are allowed to do their work once the underlying transports are
ready (e.g. monitoring fds).
|
| | |
|
| |
| |
| |
| |
| | |
External callers don't need to know the exact details, only if there is
data that needs to be flushed or not.
|
|/
|
|
| |
Mainly fixes for Japanese and Korean keyboard layouts.
|
|
|
|
|
| |
This makes our builds directly compatible with most distributions
without packagers/users having to specify extra flags.
|
|
|
|
|
|
| |
Don't allow subclasses to just override dimensions or buffer details
directly and instead force them to go via methods. This allows us
to do sanity checks on the new values and catch bugs and attacks.
|
|
|
|
|
|
| |
We now filter incoming data, which means we can start assuming the
clipboard data is always null terminated. This allows us to clean
up a lot of the internal handling.
|
|
|
|
|
|
| |
There might be multiple clients using a single IP (e.g. NAT), which
can make the blacklist do more harm than good. So add a setting to
disable it if needed.
|
|
|
|
| |
Patch originally by @KenMilmore on GitHub.
|
|\ |
|