| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |/ / |
|
| | |
| | |
| | |
| | | |
Give people a chance to know about the documentation.
|
|/ /
| |
| |
| |
| |
| | |
It's almost mandatory to specify "session", but fairly rare to need to
set "desktop", so let's tweak the examples to avoid confusion and
mistakes.
|
|/ |
|
|
|
|
|
| |
Build flags control where this file ends up, so avoid assuming a
specific path in the HOWTO.
|
|
|
|
|
| |
The line width was very inconsitent in this file, so standardise on the
common 72 characters.
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
'vmware-cursor-position-vncviewer' of https://github.com/lhchavez/tigervnc
|
| |
| |
| |
| |
| | |
stderr has been redirected to /dev/null so all logging needs to go to
syslog.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| | |
|
|/
|
|
|
| |
Otherwise we might end up owners of something we cannot deliver data on,
which can hang applications.
|
|\ |
|
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
This is what display managers do, so it is expected by many
environments.
|
| |
| |
| |
| |
| |
| | |
We terminated the child instead of the parent after fork().
Reported by Jan Grulich from Red Hat.
|
| |
| |
| |
| | |
Mainly fixes for Japanese and Korean keyboard layouts.
|
| |
| |
| |
| |
| | |
It is now dynamically generated, so it will be in the build directory
and not in the source directory.
|
|\ \ |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Refer @CMAKE_INSTALL_FULL_SYSCONF@ instead.
|
|/ /
| |
| |
| |
| |
| | |
This is needed by vncserver which doesn't know which parameters are
boolean, and it cannot use the -Param=Value form as that isn't tolerated
by the Xorg code.
|
| |
| |
| |
| |
| | |
Not sure why this got in there, but it is incorrect as it results in
creating files with too liberal permissions.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This line affects every command run by the user, unlike everything else
in our policy which is just for vncserver/vncsession. It's easy to miss
this so add a comment pointing it out.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Allow vnc session labeled with SELinux vnc_session_t domain to create
directory in user homedir ~/.vnc labeled with SELinux label xdm_home_t.
Because also process vncpasswd creates ~/.vnc directory, file transition that
userdomain attribute SELinux domain (label for the process) can create the
directory with the same label needs to be added.
userdomain attribute contains following SELinux types:
auditadm_t
dbadm_t
guest_t
logadm_t
secadm_t
staff_t
staff_wine_t
sysadm_t
unconfined_t
user_t
user_wine_t
webadm_t
xguest_t
Signed-off-by: Lukas Vrabec <lvrabec@redhat.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the X server is not shut down cleanly, it can leave UNIX domain
sockets around that "vncserver" has previously mis-identified as
evidence that the display number is still in use.
Instead of checking for existence of /tmp/.X11-unix/X<n>, the code
will now attempt to connect to the socket to confirm that there is a
server process listening on this UNIX domain socket. This will
eliminate false positives in the case the UNIX domain socket still
exists but is not associated with a listening Xorg server. The Xorg
server does not have a problem with fixing this file when it next
starts up. It is only important to avoid using the port if it is still
in use.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The display check and related setup code was complex due to
compatibility with Perl 4. This included different ways of obtaining
system constants and building system data structures. Perl 5 provides
direct constants and utility methods to abstract this out of the
vncserver code.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the X server is not shut down cleanly, it may leave lock files
around that "vncserver" has previously mis-identified as evidence that
the display number is still in use.
Instead of checking for existence of /tmp/.X<n>-lock, the code will
now extract the PID from the lock file and confirm that a process
exists with the same PID. This will eliminate false positives in the
case that this file references a PID that no longer exists. The Xorg
server does not have a problem with fixing this file when it next
starts up. It is only important to avoid using the port if it is still
in use.
|
| | |
| | |
| | |
| | |
| | |
| | | |
The display check had duplicate code to first check if the X11 port is
not in use, and then check that the RFB port is not in use. Eliminate
the duplicate code by using a for-loop.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Several calculated values such as file paths and port numbers were
hard coded within strings or expressions, sometimes multiple
times. These values should be extracted into named variables to
improve self-documentation and avoid accidental divergence.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Checking for the existence of `/tmp/.X<n>-lock` is a fast read-only
operation, while calls to bind() or connect() are more expensive and
may have side effects. Perform the fast operation first.
|
|/ /
| |
| |
| |
| |
| | |
The check for existence of `/usr/spool/sockets/X11/<n>` has been
removed. This file is only relevant on HP-UX, and TigerVNC dropped
support for HP-UX in commit 31e5aa3.
|
| |
| |
| |
| |
| |
| |
| | |
It's quite easy to make a mistake and add an additional space when configuring
users in the vncserver.users config file. You will then get an error that the
user doesn't exist and it's hard to spot the mistake. Same applies for a space
before the display number.
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Might as well make these explicit so the cost is apparent.
|
| | |
| | |
| | |
| | |
| | | |
This is the current upstream so let's make use of it to get the latest
in features and fixes.
|
| | |
| | |
| | |
| | |
| | | |
It creates an invalid region if given an empty rect. Fortunately
RegionInitBoxes() handles that just fine, so use that instead.
|
| | |
| | |
| | |
| | |
| | | |
We no longer support such old X servers so start using the current
functions.
|
| | | |
|
| |/
|/|
| |
| |
| | |
It expects the callers to include this, so make sure we're consistently
providing one.
|