aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'RHEL-34880' of github.com:casantos/tigervncHEADmasterPierre Ossman11 days14-153/+158
|\
| * Make Xvnc and x0vncserver pass the display name to PAM modules.Carlos Santos2025-06-136-1/+40
| | | | | | | | | | | | Fixes: https://issues.redhat.com/browse/RHEL-34880 Signed-off-by: Carlos Santos <casantos@redhat.com>
| * Send PAM error messages to VNC clientsCarlos Santos2025-06-137-14/+38
| | | | | | | | | | | | | | Send the generic "Authentication failed" if the PAM module does not pass an error message. Signed-off-by: Carlos Santos <casantos@redhat.com>
| * Move all PAM authentication code to UnixPasswordValidatorCarlos Santos2025-06-134-134/+77
| | | | | | | | | | | | It is not used anywhere else. Signed-off-by: Carlos Santos <casantos@redhat.com>
| * xvnc.c: faster handling of the display argument in ddxProcessArgument()Carlos Santos2025-06-131-5/+4
| | | | | | | | | | | | | | | | | | | | Return zero if the current argument starts with ":". It's useless to check if it matches any of the other Xvnc arguments. Also use the global variable explicit_display, set by the X server code, instead of a private flag. Signed-off-by: Carlos Santos <casantos@redhat.com>
* | Merge branch 'nofile-unlimited' of github.com:grulja/tigervncPierre Ossman11 days1-8/+4
|\ \
| * | SELinux: Use kernel_read_fs_sysctls interface instead custom policyJan Grulich2025-03-031-8/+4
| | | | | | | | | | | | | | | The kernel_read_fs_sysctls interface does exactly the same thing and we don't reinvent the wheel. It's also easier to maintain.
* | | Tell xgettext we use UTF-8 for source stringsPierre Ossman2025-06-271-0/+1
| | | | | | | | | | | | | | | We no longer restrict ourselves to just ASCII, so we need to tell xgettext the encoding we use in the source code.
* | | Remove explicit VeNCrypt from WinVNCPierre Ossman2025-06-231-3/+0
| | | | | | | | | | | | This should have been included way back in 674bf06.
* | | Merge branch 'fix/add_dependencies' of github.com:ceamac/tigervncPierre Ossman2025-06-231-5/+5
|\ \ \
| * | | Fix cmake add_dependencies callViorel Munteanu2025-06-201-5/+5
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Try to fix this error: CMake Error at release/CMakeLists.txt:66 (add_dependencies): Cannot add target-level dependencies to non-existent target "tigervnc-Linux-x86_64-1.15.80.tar.gz". The add_dependencies works for top-level logical targets created by the add_executable, add_library, or add_custom_target commands. If you want to add file-level dependencies see the DEPENDS option of the add_custom_target and add_custom_command commands. I get this error with cmake 3.31.7 and with cmake 4.0.2.
* | | Merge branch 'tlsalert' of github.com:CendioOssman/tigervncPierre Ossman2025-06-1818-323/+577
|\ \ \ | |/ / |/| |
| * | Gracefully shut down connectionsPierre Ossman2025-06-184-20/+88
| | | | | | | | | | | | | | | Allow everything to flush properly so that both ends see a clean close, rather than a reset connection. Avoids misleading error messages.
| * | Flush socket when closing the viewer connectionPierre Ossman2025-06-181-0/+2
| | | | | | | | | | | | In case there are any last termination messages pending.
| * | Only configure valid hostnames for SNIPierre Ossman2025-06-181-4/+20
| | | | | | | | | | | | | | | The specification states that servers should reject invalid names (e.g. IP addresses), so try to make sure we only set something valid.
| * | Send TLS alerts to peer on errorsPierre Ossman2025-06-182-18/+75
| | | | | | | | | | | | Better inform the peer why we are terminating the connection.
| * | Show TLS alerts in log and to userPierre Ossman2025-06-183-10/+42
| | | | | | | | | | | | | | | | | | If the peer decides to terminte the connection, then the reason will be sent as an alert rather than seen through the normal error code. Make sure we show this so it's easier to determine what went wrong.
| * | Propagate exceptions during TLS handshakePierre Ossman2025-06-181-0/+3
| | | | | | | | | | | | Just like we do for regular TLS communication.
| * | Let TLSSocket handle TLS handshakePierre Ossman2025-06-184-20/+27
| | | | | | | | | | | | More avoiding duplication and increasing encapsulation.
| * | Let TLSSocket handle TLS terminationPierre Ossman2025-06-184-42/+28
| | | | | | | | | | | | Let's avoid duplication and also raise the encapsulation a bit.
| * | Avoid static methods for TLSSocketPierre Ossman2025-06-182-27/+23
| | | | | | | | | | | | We can use lambdas as glue and let them be normal methods instead.
| * | Merge TLS I/O in common classPierre Ossman2025-06-1811-223/+316
| | | | | | | | | | | | | | | | | | Input and output do not happen independently in TLS streams, so we need to have a coordinating central object for all I/O. E.g. a TLS read can result in a low level write.
| * | Always include InStream::checkedBytesPierre Ossman2025-06-181-7/+1
|/ / | | | | | | | | The ABI for the class needs to be stable across modules, so we cannot have conditional class members like this.
* | Handle missing user in WinVNC query dialogPierre Ossman2025-06-131-1/+2
| | | | | | | | std::string doesn't like null strings. Give it an empty one instead.
| |
| \
*-. \ Merge branches 'wingrab' and 'hotkey' of github.com:CendioOssman/tigervncPierre Ossman2025-06-1326-440/+1987
|\ \ \
| | * | Keep active keys on no-op focus changePierre Ossman2025-05-281-3/+42
| | | | | | | | | | | | | | | | | | | | | | | | Avoid releasing all keys if we're not losing focus for real. This is useful if a keyboard shortcut is active when the keyboard is being grabbed, as it allows chaining keyboard shortcuts.
| | * | Show error grabbing keyboardPierre Ossman2025-05-282-31/+55
| | | | | | | | | | | | | | | | | | | | | | | | It is now very likely that this happens as we will not have permission to do this by default on macOS. So present a message to the user so they understand why the keyboard isn't working as expected.
| | * | Synchronously retry X11 keyboard grabPierre Ossman2025-05-282-21/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make this less complex by removing the timer and retrying things synchronously. This can freeze the UI, but we give up after half a second so it should hopefully not be noticable. The advantage is that we can directly determine if we succeeded or failed grabbing the keyboard. The previous code could in theory continue retrying forever.
| | * | Update window caption on grabPierre Ossman2025-05-283-5/+12
| | | | | | | | | | | | | | | | | | | | Provide some UI feedback that the keyboard is currently grabbed and local input is prevented.
| | * | Avoid repeating overlay tipsPierre Ossman2025-05-282-0/+22
| | | | | | | | | | | | | | | | | | | | It can get a bit annoying if you keep getting these constantly, so only show them again if enough time has passed since we last showed them.
| | * | Add overlays for grab and full screenPierre Ossman2025-05-281-0/+23
| | | | | | | | | | | | | | | | | | | | These modes can be non-obvious for users how to get out of, so show an overlay with how to get back to normal when these modes are enabled.
| | * | Add support for more overlaysPierre Ossman2025-05-282-46/+61
| | | | | | | | | | | | | | | | | | | | We want to show tips for more things, so rework the overlay infrastructure so it can handle an arbitrary amount of messages.
| | * | Regrab keyboard on temporary focus lossPierre Ossman2025-05-282-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we lose focus whilst the keyboard grab is active, then it should mean we didn't lose it the way you normally do using the keyboard (e.g. Alt+Tab). Common scenarios are opening the context menu, or clicking on another monitor or application. In these cases, the user likely wants to keep the same state, i.e. grabbed, when they return to the viewer window.
| | * | Add keyboard shortcut to grab keyboardPierre Ossman2025-05-283-6/+21
| | | | | | | | | | | | | | | | | | | | Allows you to grab the keyboard input from the desktop environment even in windowed mode.
| | * | Add keyboard shortcut to release keyboard grabPierre Ossman2025-05-273-0/+30
| | | |
| | * | Avoid trying to re-grab an existing keyboard grabPierre Ossman2025-05-271-0/+3
| | | | | | | | | | | | | | | | It will fail on at least X11, causing needless noise.
| | * | Allow other classes to control keyboard grabPierre Ossman2025-05-272-27/+22
| | | | | | | | | | | | | | | | | | | | Open up control of this to other parts of the viewer, in preparation for adding keyboard shortcuts.
| | * | Update FLTK's event time for stolen eventsPierre Ossman2025-05-271-0/+5
| | | | | | | | | | | | | | | | | | | | Otherwise it will provide the wrong time in some of its X11 calls, making them fail.
| | * | Add keyboard shortcut for full screenPierre Ossman2025-05-273-0/+20
| | | | | | | | | | | | | | | | Allows you to quickly enter and leave full-screen mode.
| | * | Add a bypass for keyboard shortcutsPierre Ossman2025-05-274-60/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No matter how carefully you choose your shortcut modifiers, there might still be situations where you need to send those key combinations to the server instead. This commit adds a method for this by letting the <modifiers>+Space combination temporarily bypass the keyboard shortcut logic and send everything to the server (until all keys are released again).
| | * | Use generic keyboard shortcuts for client controlPierre Ossman2025-05-2715-221/+1270
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to be able to define more keyboard combinations that allows the user to control the client instead of sending the keys to the server. Instead of adding a never ending stream of random keys that just confuses things, we'll define a set of modifiers that are the base for all client control commands.
| | * | Add helper to get all symbols for a keyPierre Ossman2025-05-237-83/+306
| | | | | | | | | | | | | | | | | | | | When we need to know all possible symbols a specific physical key might possibly generate. Needed for the incoming keyboard shortcut logic.
| | * | Handle large titles in Fl_NavigationPierre Ossman2025-05-231-2/+10
| | | | | | | | | | | | | | | | | | | | Make sure that they can wrap, and that the button is large enough for the entire text.
| * | | Grab all keys on WindowsPierre Ossman2025-06-131-27/+3
| | | | | | | | | | | | | | | | | | | | We don't have to be careful about this since we haven't used FLTK for keyboard events since 56610fb.
| * | | Add missing media keys on WindowsPierre Ossman2025-06-131-0/+2
| | | | | | | | | | | | | | | | We had overlooked two of them for some reason.
| * | | Fix stuck keys when grabbing on WindowsPierre Ossman2025-06-131-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows will not see the key events we decide to intercept. That means it will fail to update its internal state of which keys are pressed or not. Avoid this by letting key release through if the key was pressed before we started intercepting events.
| * | | Properly fake Windows events during key grabPierre Ossman2025-06-131-3/+29
| |/ / | | | | | | | | | | | | | | | | | | | | | Some keyboard events are modified before being delivered to the application. When we do a low-level hook, we bypass this modification. Make sure we modify events in the same way Windows would, to avoid surprises for the application code getting these events.
* | | Remove Xvnc manual bool param checkPierre Ossman2025-06-113-30/+0
| | | | | | | | | | | | | | | This was supposed to be removed in e97e225 when we moved this to the core library.
* | | Merge branch 'casantos-gcc-14' of github.com:casantos/tigervncPierre Ossman2025-06-113-14/+4
|\ \ \
| * | | xvnc.c: remove unnecessary test of function return valueCarlos Santos2025-06-081-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This: ret = vncHandleParamArg(argc, argv, i); if (ret != 0) return ret; return 0; Is the same as return vncHandleParamArg(argc, argv, i); Signed-off-by: Carlos Santos <casantos@redhat.com>