aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Maintain a constant VNCServer/SDesktop connectionPierre Ossman2024-06-198-22/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | The desktop isn't completely paused just because there are no clients, so it might still need some support from the server object. This is primarily an issue for headless servers, where they need to continue emulating things even without clients. A scraping server can generally go completely passive if there are no clients.
| * | Make it easier to change timer intervalPierre Ossman2024-06-193-6/+8
| | |
| * | Explicitly request timer repetitionPierre Ossman2024-06-1918-73/+63
| | | | | | | | | | | | | | | | | | One-shot timers are more common, so let's change the API a bit to make that use case simpler. This API also makes it more clear what is happening.
| * | Fix up Timer commentsPierre Ossman2024-06-191-27/+34
| | | | | | | | | | | | They were badly formatted, way longer than the normal 72 columns.
| * | Add safety check to getNextTimeout()Pierre Ossman2024-06-191-0/+6
| | | | | | | | | | | | | | | | | | It currently won't ever be called with an empty list of timers, but it is a public function so that might happen in the future. Make sure this case is handled without crashes.
| * | Stop treating "0" as "no timeouts"Pierre Ossman2024-06-198-23/+18
| | | | | | | | | | | | | | | It is much more sane to treat "0" as "a timer is ready NOW", so let's change to using -1 as the invalid timeout value.
| * | Remove unneeded iterationPierre Ossman2024-06-191-3/+1
| | | | | | | | | | | | This should have been done in a4308c9.
| * | Detect conflicting timer reschedulingPierre Ossman2024-06-191-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Repeating a timer can be done in two ways: * Returning true from the handler * Calling start() again in the handler The latter is useful if you want to change the timer interval. If both are used, then it becomes ambiguous when the timer should fire again. Detect this case and warn about it. Current implementation will respect the new interval given to start(), rather than the interval set before running the handler.
* | | Add support for PKCS11 jar signingBrian P. Hinz2024-06-152-10/+37
| |/ |/|
* | Merge branch 'pam_env' of github.com:CendioOssman/tigervncPierre Ossman2024-05-309-84/+134
|\ \
| * | Create common recursive mkdir()Pierre Ossman2024-05-305-65/+87
| | | | | | | | | | | | | | | | | | | | | Avoid duplicating this complexity in too many places. At the same time make the interface more identical to regular mkdir(), for familiarity.
| * | Use $XDG_STATE_HOME for known hosts storagePierre Ossman2024-05-303-4/+8
| | | | | | | | | | | | | | | This is an often changed database, so it is better suited for $XDG_STATE_HOME rather than the more static $XDG_DATA_HOME.
| * | Only do restorecon() for legacy directoryPierre Ossman2024-05-301-12/+12
| | | | | | | | | | | | | | | This is only needed because of an historical type change of the legacy directory, so avoid doing it anywhere else.
| * | Fix late vncsession loggingPierre Ossman2024-05-301-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | The syslog file descriptor will be closed when we are cleaning up in preparation for running the vncserver script, so we need to explicitly reopen things in case we need to log errors. At the same time, try to be polite and explicitly close the log when appropriate.
| * | Respect PAM modules for $XDG_STATE_HOMEPierre Ossman2024-05-301-3/+16
| | | | | | | | | | | | | | | E.g. pam_env.so might modify this variable, so we should see what we get out of PAM when building a log file path.
| * | Add comment that PAM configuration is an examplePierre Ossman2024-05-201-0/+4
|/ / | | | | | | | | | | There is too much variation between distributions for us to have a good PAM configuration that works everywhere. Try to make this more obvious by having a comment at the top of the file.
* | Merge branch 'casantos-rhbz_2180903' of https://github.com/casantos/tigervncPierre Ossman2024-05-2036-159/+238
|\ \
| * | vncconfig: add option to force view-only remote client connectionsCarlos Santos2024-04-2617-29/+49
| | | | | | | | | | | | | | | | | | | | | | | | Specifies that the server must ignore all keyboard or mouse events sent by the client. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2180903 Signed-off-by: Carlos Santos <casantos@redhat.com>
| * | Remove the network::SocketServer interface.Carlos Santos2024-04-2611-72/+75
| | | | | | | | | | | | | | | | | | | | | Move these RFB specific things to rfb::VNCServer, for clarity. Signed-off-by: Pierre Ossman <ossman@cendio.se> Signed-off-by: Carlos Santos <casantos@redhat.com>
| * | Move the AccessRights type and constants to the rfb namespaceCarlos Santos2024-04-2317-60/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | They must belong to the rfb namespace, not to the SConnection class. Also add an AccessNone constant, since it's better to use a mnemonic symbol rather than zero to initialize the accessRights members. Signed-off-by: Carlos Santos <casantos@redhat.com>
* | | Don't check pointers for zero length buffersPierre Ossman2024-05-202-4/+4
| | | | | | | | | | | | | | | It's perfectly fine to give a NULL pointer if the length has explicitly been specified as zero.
* | | Merge pull request #1737 from 62832/fix-1195Samuel Mannehed (ThinLinc team)2024-05-0730-167/+380
|\ \ \ | | | | | | | | Allow for alternative user config locations, deprecate `~/.vnc` in favour of XDG Base Directory Specification paths
| * | | Implement XDG Base Directory paths, deprecate ~/.vnc902024-04-2628-174/+292
| | | |
| * | | Begin work on XDGBDS compliance and overrideable configs902024-03-159-56/+151
| | |/ | |/|
* | | Add .gitignore for SELinux filesPierre Ossman2024-04-261-0/+2
| | |
* | | Don't trigger build from install targetPierre Ossman2024-04-261-1/+1
| | | | | | | | | | | | | | | | | | The norm is that the install target is read only from the point of view of the source and build directory, so avoid accidentally triggering any build.
* | | Clean up temporary SELinux directoryPierre Ossman2024-04-261-0/+1
| | |
* | | Overwrite vncsession.pp.bz2 each timePierre Ossman2024-04-261-1/+1
| |/ |/| | | | | | | Make it easier to work iteratively by not having to remove the output file each time.
* | Use XQueryPointer() instead to detect zaphodPierre Ossman2024-04-101-4/+8
| | | | | | | | | | | | FLTK can send events with fl_xevent pointing to random memory, which means that we cannot trust that structure. XQueryPointer() can give us what we need, at the cost of an extra round trip.
* | Correctly set socket write notificationPierre Ossman2024-04-091-2/+0
| | | | | | | | | | That extra add_fd() only set the read notification, overwriting any write notification set up in the lines just above.
* | Update github actions to latest versionsPierre Ossman2024-04-021-11/+11
| | | | | | | | Primarily to avoid the versions that are now deprecated.
* | Merge pull request #1742 from TigerVNC/issue843Brian Hinz2024-03-301-18/+15
|\ \ | |/ |/| Fix for issue 843
| * Fix for issue 843Brian P. Hinz2024-03-301-18/+15
|/
* Don't link gcrypt for static GnuTLSPierre Ossman2024-03-151-5/+0
| | | | | | GnuTLS seems to have dropped grypt support ages ago, so let's not confuse things by assuming it might be needed when linking GnuTLS statically.
* Properly propagate CursorWarpedTo()Pierre Ossman2024-03-141-0/+5
| | | | | Although unlikely, there might be other parts of the X server that are also interested in this call. Make sure we propagate things on properly.
* Clarify AcceptPointerEvents settingPierre Ossman2024-02-063-3/+3
| | | | | It doesn't just control button events, but all types of pointer events, including movement.
* Fix shared memory leakAdam Halim2024-01-261-1/+1
| | | | | | | | The MIT-SHM documentation: https://www.x.org/releases/X11R7.7/doc/xextproto/shm.html says to run XShmDetach() first, and then to destroy the segment. (cherry picked from commit 585ee24d4cd81759ca7206d5d5181a491c2e8898)
* Increase time required to override pointerClientSamuel Mannehed2024-01-261-1/+1
| | | | | | | | | | | | | | | | | | Mouse events in shared connections are locked to one viewer at a time. If the a mouse drag is happening in the first viewer, the second viewer can't interfere unless the first viewer has been inactive for a set amount of time. This timeout was put in place in 71c83b479335337b25dc331d3fb4a6e29382ceb5 to handle the case where the first viewer disconnects while the mouse drag is happening. Prior to the timeout, this resulted in all input being blocked. This commit increases this timeout from 3 seconds to 10 seconds. This is to minimize the risk of this happening during "normal" use. With this change, the first viewer has to be inactive for 10 seconds before the second viewer can take control again. In the case where the first viewer disconnects, a waiting time of 10 seconds for the second viewer seems very reasonable.
* Break long lines in new pointerEvent logicSamuel Mannehed2024-01-261-3/+4
|
* Fix bad variable reference in file loggerPierre Ossman2024-01-251-1/+1
|
* Merge pull request #1718 from MikeLooijmans/server-mousebuttonowner-timeoutlinma (ThinLinc team)2024-01-252-2/+8
|\ | | | | VNCServerST: Add a timeout to pointer button ownership
| * VNCServerST: Add a timeout to pointer button ownershipMike Looijmans2024-01-222-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When one clients holds down a button on the pointer device (probably dragging something), other clients' attempts at pointer operations are denied. This yields a sane user experience, but with limits. When one clients starts dragging, and then his network connection fails, other clients are denied access to the pointer until the VNC server finally discovers that the connection is dead and closes it. This can take about 15 minutes. Add a timeout to this policy: If we don't hear from the client for 3 seconds, other clients are allowed to control the pointer once more. This solves the problem that one failing network could make the server completely deaf to other clients for a long time. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
* | Set all HAVE_ macros on the top levelPierre Ossman2024-01-244-9/+18
| | | | | | | | This keep everything consistent.
* | Remove superfluous X11_FOUND checkPierre Ossman2024-01-241-4/+4
| | | | | | | | It is REQUIRED in this context, so we can assume X11 has been found.
* | Merge branch 'systemd' of https://github.com/CendioOssman/tigervncPierre Ossman2024-01-245-3/+64
|\ \ | |/ |/|
| * Document optional libsystemd requirementPierre Ossman2024-01-241-0/+3
| |
| * Allow combining socket activation and extra portsPierre Ossman2024-01-242-36/+50
| | | | | | | | | | | | The common use case is probably to only listem to the systemd provided socket when using socket activation, but it might not be the only use case. Make sure things can be combined if explicitly requested.
| * Log when sd_listen_fds() failsPierre Ossman2024-01-241-0/+5
| |
| * Use SD_LISTEN_FDS_START constantPierre Ossman2024-01-241-4/+2
| | | | | | | | Avoid magical numbers as it makes it hard to understand the code.
| * Make systemd detection more robustPierre Ossman2024-01-241-1/+6
| | | | | | | | | | We don't need to look for this on Windows or macOS, and we need to be able to gracefully handle systems without pkg-config.